TFM - AI

Comparación de algoritmos de encaminamiento metaheurísticos, heurístico y tradicionales aplicados a Redes Ópticas

JRO

v4.10

7/07/2024

In [ ]:
 

Se importan las bibliotecas y modulos necesarios

In [4]:
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd

import random

import numpy as np

import math

import time
import tracemalloc

import copy

import psutil

import os

import plotly.graph_objects as go

import concurrent.futures
In [ ]:
 
In [5]:
# Función para cargar y filtrar los datos
def cargar_y_filtrar_datos(filepath, delimiter=';', end_marker=808):
    df = pd.read_csv(filepath, delimiter=delimiter)
    # Filtrar filas hasta el valor '808'
    # 808 es un valor interno para delimitar el tamaño de la matriz de tráfico 
    df = df[df.iloc[:, 0] != end_marker]
    return df

# Se generan los df's con los nodos y enlaces a partir de los archivos csv
RefNet3_roadm_df = cargar_y_filtrar_datos("RefNet3/RefNet3_ROADM_layer.csv", delimiter=';')
RefNet3_conectividad_roadm_df = cargar_y_filtrar_datos("RefNet3/RefNet3_ROADM_connectivity.csv", delimiter=';')

# Se muestra una vista previa de los datos cargados
print("\nRefNet3_roadm_df:")
print(RefNet3_roadm_df.head())
print("\nRefNet3_conectividad_roadm_df:")
print(RefNet3_conectividad_roadm_df.head())
RefNet3_roadm_df:
   Id  ROADM_Id  ROADM_Name  X_Pos  Y_Pos  Degrees      Type
0   1       1.0         1.0    1.0    9.0      2.0  Backbone
1   2       4.0         4.0    4.0   17.0      2.0  Backbone
2   3       2.0         2.0    2.0    7.0      2.0  Backbone
3   4       3.0         3.0    3.0   10.0      3.0  Backbone
4   5       5.0         5.0    5.0    5.0      2.0  Backbone

RefNet3_conectividad_roadm_df:
   Id  ROADM_1  ROADM_2     Km
0   1      1.0      3.0   50.0
1   2      1.0      2.0   50.0
2   3      3.0      4.0  200.0
3   4      4.0      8.0  200.0
4   5      3.0      8.0  200.0
In [6]:
# Limpiar los nombres de las columnas
RefNet3_roadm_df.columns = RefNet3_roadm_df.columns.str.strip()

# Convertir la columna 'Id' y 'ROADM_Id' a tipo entero
RefNet3_roadm_df['ROADM_Id'] = RefNet3_roadm_df['ROADM_Id'].astype(int)

# Filtrar filas válidas y eliminar filas vacías
RefNet3_roadm_df = RefNet3_roadm_df.dropna(subset=['ROADM_Id'])
RefNet3_roadm_df = RefNet3_roadm_df[RefNet3_roadm_df['ROADM_Id'] != 808]

# Mostrar los datos leídos
print("Datos de ROADM's:")
print(RefNet3_roadm_df.head())

# Limpiar los nombres de las columnas
RefNet3_conectividad_roadm_df.columns = RefNet3_conectividad_roadm_df.columns.str.strip()

# Convertir la columna 'Id', 'ROADM_1' y 'ROADM_2' a tipo entero
RefNet3_conectividad_roadm_df['ROADM_1'] = RefNet3_conectividad_roadm_df['ROADM_1'].astype(int)
RefNet3_conectividad_roadm_df['ROADM_2'] = RefNet3_conectividad_roadm_df['ROADM_2'].astype(int)

# Filtrar filas válidas y eliminar filas vacías
RefNet3_conectividad_roadm_df['Id'] = pd.to_numeric(RefNet3_conectividad_roadm_df['Id'], errors='coerce')
RefNet3_conectividad_roadm_df = RefNet3_conectividad_roadm_df.dropna(subset=['Id'])
RefNet3_conectividad_roadm_df = RefNet3_conectividad_roadm_df[RefNet3_conectividad_roadm_df['Id'] != 808]

# Mostrar los datos leídos
print("Datos de conectividad óptica (ROADM's):")
print(RefNet3_conectividad_roadm_df.head())

# Crear un diccionario de mapeo de ROADM_Name a ROADM_Id
roadm_name_to_id = dict(zip(RefNet3_roadm_df['ROADM_Name'], RefNet3_roadm_df['ROADM_Id']))
print("Diccionario de mapeo de ROADM_Name a ROADM_Id:", roadm_name_to_id)

# Crear el grafo de la capa ROADM
G_RefNet3_roadm = nx.Graph()

# Añadir nodos al grafo
for _, row in RefNet3_roadm_df.iterrows():
    G_RefNet3_roadm.add_node(int(row['ROADM_Id']), pos=(row['X_Pos'], row['Y_Pos']), name=row['ROADM_Name'], type=row['Type'], degrees=row['Degrees'])

# Añadir enlaces al grafo utilizando el diccionario de mapeo
for _, row in RefNet3_conectividad_roadm_df.iterrows():
    roadm_1_id = int(row['ROADM_1'])
    roadm_2_id = int(row['ROADM_2'])
    G_RefNet3_roadm.add_edge(roadm_1_id, roadm_2_id, distancia=row['Km'])

# Obtener posiciones de los nodos para la visualización
pos = nx.get_node_attributes(G_RefNet3_roadm, 'pos')

# Verificar que todos los nodos tienen posiciones asignadas después de añadir enlaces
print("Posiciones de los nodos después de añadir enlaces:", pos)

# Visualizar el grafo
labels = nx.get_node_attributes(G_RefNet3_roadm, 'name')

plt.figure(figsize=(12, 8))
nx.draw(G_RefNet3_roadm, pos, with_labels=True, labels=labels, node_size=500, node_color='skyblue', font_size=8, font_weight='bold')

# Añadir etiquetas a los enlaces (distancias) y asegurarse de que sean enteros
edge_labels = nx.get_edge_attributes(G_RefNet3_roadm, 'distancia')
edge_labels = {k: f"{v:.0f}" for k, v in edge_labels.items()}
nx.draw_networkx_edge_labels(G_RefNet3_roadm, pos, edge_labels=edge_labels)

plt.title('Topología de la Red Óptica (DWDM / ROADM) RefNet3')
plt.show()

# Verificar que los nodos y enlaces son enteros y flotantes respectivamente
print("Número de nodos:", len(G_RefNet3_roadm.nodes))
print("Número de aristas:", len(G_RefNet3_roadm.edges))
print("Aristas:")
print(list(G_RefNet3_roadm.edges(data=True)))
Datos de ROADM's:
   Id  ROADM_Id  ROADM_Name  X_Pos  Y_Pos  Degrees      Type
0   1         1         1.0    1.0    9.0      2.0  Backbone
1   2         4         4.0    4.0   17.0      2.0  Backbone
2   3         2         2.0    2.0    7.0      2.0  Backbone
3   4         3         3.0    3.0   10.0      3.0  Backbone
4   5         5         5.0    5.0    5.0      2.0  Backbone
Datos de conectividad óptica (ROADM's):
   Id  ROADM_1  ROADM_2     Km
0   1        1        3   50.0
1   2        1        2   50.0
2   3        3        4  200.0
3   4        4        8  200.0
4   5        3        8  200.0
Diccionario de mapeo de ROADM_Name a ROADM_Id: {1.0: 1, 4.0: 4, 2.0: 2, 3.0: 3, 5.0: 5, 7.0: 7, 8.0: 8, 6.0: 6, 10.0: 10, 9.0: 9, 11.0: 11, 12.0: 12, 13.0: 13, 19.0: 19, 20.0: 20, 14.0: 14, 15.0: 15, 21.0: 21, 22.0: 22, 23.0: 23, 24.0: 24, 25.0: 25, 16.0: 16, 17.0: 17, 18.0: 18, 26.0: 26, 28.0: 28, 27.0: 27, 30.0: 30, 29.0: 29}
Posiciones de los nodos después de añadir enlaces: {1: (1.0, 9.0), 4: (4.0, 17.0), 2: (2.0, 7.0), 3: (3.0, 10.0), 5: (5.0, 5.0), 7: (11.0, 4.0), 8: (14.0, 11.0), 6: (9.0, 7.0), 10: (20.0, 9.0), 9: (18.0, 3.0), 11: (23.0, 2.0), 12: (25.0, 4.0), 13: (27.0, 2.0), 19: (36.0, 7.0), 20: (37.0, 13.0), 14: (28.0, 10.0), 15: (31.0, 9.0), 21: (37.0, 4.0), 22: (39.0, 10.0), 23: (40.0, 8.0), 24: (40.0, 2.0), 25: (43.0, 10.0), 16: (32.0, 12.0), 17: (32.0, 3.0), 18: (34.0, 10.0), 26: (43.0, 1.0), 28: (48.0, 12.0), 27: (46.0, 11.0), 30: (49.0, 16.0), 29: (49.0, 14.0)}
Número de nodos: 30
Número de aristas: 36
Aristas:
[(1, 3, {'distancia': 50.0}), (1, 2, {'distancia': 50.0}), (4, 3, {'distancia': 200.0}), (4, 8, {'distancia': 200.0}), (2, 5, {'distancia': 50.0}), (3, 8, {'distancia': 200.0}), (5, 7, {'distancia': 100.0}), (7, 6, {'distancia': 70.0}), (7, 9, {'distancia': 100.0}), (8, 6, {'distancia': 150.0}), (8, 10, {'distancia': 100.0}), (10, 9, {'distancia': 150.0}), (10, 14, {'distancia': 100.0}), (9, 11, {'distancia': 50.0}), (11, 13, {'distancia': 50.0}), (12, 13, {'distancia': 50.0}), (12, 14, {'distancia': 150.0}), (13, 17, {'distancia': 50.0}), (13, 19, {'distancia': 200.0}), (19, 23, {'distancia': 50.0}), (20, 16, {'distancia': 50.0}), (20, 30, {'distancia': 200.0}), (14, 15, {'distancia': 50.0}), (15, 18, {'distancia': 50.0}), (21, 24, {'distancia': 50.0}), (21, 17, {'distancia': 50.0}), (22, 25, {'distancia': 50.0}), (22, 18, {'distancia': 50.0}), (23, 25, {'distancia': 50.0}), (23, 26, {'distancia': 150.0}), (24, 26, {'distancia': 50.0}), (25, 27, {'distancia': 50.0}), (16, 18, {'distancia': 50.0}), (28, 29, {'distancia': 50.0}), (28, 27, {'distancia': 50.0}), (30, 29, {'distancia': 50.0})]

Nótese que los números son Float y se necesita que sean enteros, Se ha añadido la distancia entre cada par de nodos como 'weitght / peso' en el grafo. Los enlaces ya se han convertido a enteros.

Ahora hay que añadir la atenuacion y el OSNR por link

Fórmulas para Atenuación y OSNR por Sección

La atenuación y OSNR considerando un OA en cada ROADM se puede calcular como sigue: Atenuación_sección = atenuación_fibra_C × distancia + pérdida_ROADM − ganancia_OA

OSNR_sección = potencia_señal_entrada − atenuación_fibra_C × distancia − pérdida_ROADM + ganancia_OA − figura_ruido_OA

In [7]:
# Se definen las potencias de salida para los transponders de 100G, 400G, 800G

potencias_transponders = {
    # Potencia de salida para 100G en dBm
    100: 1,  
    # Potencia de salida para 400G en dBm
    400: -3,  
    # Potencia de salida para 800G en dBm
    800: -1   
}
In [8]:
# Tipo de transponder (100G, 400G, 800G)
tipo_transponder = 100

# Potencia de salida del transponder
potencia_senal_entrada = potencias_transponders[tipo_transponder] 
In [9]:
# Parametros de la fibra y amplificadores

# km por seccion entre EDFA's
distancia_entre_edfas = 80  # km
# dB/km en banda C
atenuacion_fibra_C = 0.3
# dB/km en banda L
atenuacion_fibra_L = 0.27
# dB por amplificador óptico
ganancia_OA = 20
# dB figura de ruido del amplificador óptico
figura_ruido_OA = 5
# dB por ROADM
perdida_ROADM = 0.2
# Budget OSNR en el trayecto optico, por specs del transponder
osnr_entrada = 14

# Numero de canales de DWDM: 80 (estandar Banda C), 96 (Banda C extendida), 160 (Bandas C + L)
num_ch_dwdm = 96

# Velocidad de la luz en la fibra óptica (m/s). 
# Es menor que la velocidad de la luz en el vacío
velocidad_luz_fibra = 2 * 10**8 
In [10]:
# Definir las funciones para calcular atenuación y OSNR por sección

# Funciones de cálculo APROXIMADAS

# Valores simulados ya que los valores reales dependen de la especificación de los fabricantes y esta especificación es agnóstica / neutral

# Funciones de cálculo ajustadas
def calcular_atenuacion_seccion(distancia, atenuacion_fibra, ganancia_OA, perdida_ROADM):
    num_secciones = int(distancia // 80)
    atenuacion_total = 0
    
    for _ in range(num_secciones):
        atenuacion_total += (atenuacion_fibra * 80)  # Pérdida de la fibra en 80 km
        atenuacion_total -= ganancia_OA  # Ganancia del amplificador óptico
        atenuacion_total += perdida_ROADM  # Pérdida por ROADM

    # Para la sección final que no alcanza los 80 km completos
    distancia_restante = distancia % 80
    if distancia_restante > 0:
        atenuacion_total += (distancia_restante * atenuacion_fibra)
        atenuacion_total -= ganancia_OA * (distancia_restante / 80)  # Ajustar la ganancia del amplificador proporcionalmente
        atenuacion_total += perdida_ROADM  # Hipótesis: se asume que la pérdida por ROADM también se aplica en la última sección
    
    return round(max(0, atenuacion_total), 2)  # No permitir atenuación negativa

def calcular_osnr_seccion(distancia, atenuacion_fibra, ganancia_OA, figura_ruido_OA, perdida_ROADM, osnr_entrada, umbral_minimo=1):
    num_secciones = int(distancia // 80)
    osnr_total = osnr_entrada
    
    # Proceso iterativo para cada sección de 80 km
    for _ in range(num_secciones):
        osnr_total -= figura_ruido_OA  # Penalización por la figura de ruido (NF) del OA
        osnr_total += ganancia_OA - (80 * atenuacion_fibra)  # Ganancia del OA menos la atenuación de la fibra
        osnr_total -= perdida_ROADM  # Penalización por el ROADM

        # Aplicar umbral mínimo
        if osnr_total < umbral_minimo:
            osnr_total = umbral_minimo

    # Para la sección final que no alcanza los 80 km completos
    distancia_restante = distancia % 80
    if distancia_restante > 0:
        osnr_total -= figura_ruido_OA
        osnr_total += ganancia_OA - (distancia_restante * atenuacion_fibra)
        osnr_total -= perdida_ROADM
        
        # Aplicar umbral mínimo
        if osnr_total < umbral_minimo:
            osnr_total = umbral_minimo
    
    return round(osnr_total, 2)
In [11]:
# Calcular atenuación y OSNR para cada enlace en el grafo

# Calcular atenuación y OSNR para cada enlace
for u, v, data in G_RefNet3_roadm.edges(data=True):
    distancia = data['distancia']
    atenuacion = calcular_atenuacion_seccion(distancia, atenuacion_fibra_C, ganancia_OA, perdida_ROADM)
    if atenuacion == 0:
        atenuacion += 1
    osnr = calcular_osnr_seccion(distancia, atenuacion_fibra_C, ganancia_OA, figura_ruido_OA, perdida_ROADM, osnr_entrada)
    data['atenuacion'] = atenuacion
    data['osnr'] = osnr

# Verificar las propiedades de los enlaces
for u, v, data in G_RefNet3_roadm.edges(data=True):
    print(f"Enlace {u}-{v}: Distancia = {data['distancia']} km, Atenuación = {data['atenuacion']} dB, OSNR = {data['osnr']} dB")
Enlace 1-3: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 1-2: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 4-3: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 4-8: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 2-5: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 3-8: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 5-7: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 7-6: Distancia = 70.0 km, Atenuación = 3.7 dB, OSNR = 7.8 dB
Enlace 7-9: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 8-6: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 8-10: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 10-9: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 10-14: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 9-11: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 11-13: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 12-13: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 12-14: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 13-17: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 13-19: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 19-23: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 20-16: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 20-30: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 14-15: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 15-18: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 21-24: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 21-17: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 22-25: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 22-18: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 23-25: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 23-26: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 24-26: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 25-27: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 16-18: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 28-29: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 28-27: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 30-29: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
In [12]:
# Visualizar el grafo de red con las etiquetas de Atenuación y OSNR
# Obtener posiciones de los nodos para la visualización
pos = nx.get_node_attributes(G_RefNet3_roadm, 'pos')

# Verificar que todos los nodos tienen posiciones asignadas después de añadir enlaces
print("Posiciones de los nodos después de añadir enlaces:", pos)

# Dibujar el grafo con las etiquetas de atenuación y OSNR
plt.figure(figsize=(12, 8))
nx.draw(G_RefNet3_roadm, pos, with_labels=False, node_size=700, node_color='skyblue', font_size=5, font_weight='bold')

# Convertir etiquetas de nodos a enteros
node_labels = nx.get_node_attributes(G_RefNet3_roadm, 'name')
nx.draw_networkx_labels(G_RefNet3_roadm, pos, labels=node_labels, font_size=5, font_weight='bold')

# Añadir etiquetas de atenuación y OSNR a los enlaces
edge_labels_atenuacion = { (u, v): f"Att.: {data['atenuacion']:.2f} dB" for u, v, data in G_RefNet3_roadm.edges(data=True) }
edge_labels_osnr = { (u, v): f"OSNR: {data['osnr']:.2f} dB" for u, v, data in G_RefNet3_roadm.edges(data=True) }

# Dibujar etiquetas de atenuación con desplazamiento para evitar overlapping
nx.draw_networkx_edge_labels(G_RefNet3_roadm, pos, edge_labels=edge_labels_atenuacion, font_color='red', font_size=6, label_pos=0.3, bbox=dict(facecolor='white', edgecolor='none', boxstyle='round,pad=0.3'))

# Dibujar etiquetas de OSNR con desplazamiento diferente para evitar overlapping
nx.draw_networkx_edge_labels(G_RefNet3_roadm, pos, edge_labels=edge_labels_osnr, font_color='blue', font_size=6, label_pos=0.75, bbox=dict(facecolor='white', edgecolor='none', boxstyle='round,pad=0.3'))

plt.title('Topología de la Red Óptica (ROADM) RefNet3 con atenuación y OSNR')
plt.show()
Posiciones de los nodos después de añadir enlaces: {1: (1.0, 9.0), 4: (4.0, 17.0), 2: (2.0, 7.0), 3: (3.0, 10.0), 5: (5.0, 5.0), 7: (11.0, 4.0), 8: (14.0, 11.0), 6: (9.0, 7.0), 10: (20.0, 9.0), 9: (18.0, 3.0), 11: (23.0, 2.0), 12: (25.0, 4.0), 13: (27.0, 2.0), 19: (36.0, 7.0), 20: (37.0, 13.0), 14: (28.0, 10.0), 15: (31.0, 9.0), 21: (37.0, 4.0), 22: (39.0, 10.0), 23: (40.0, 8.0), 24: (40.0, 2.0), 25: (43.0, 10.0), 16: (32.0, 12.0), 17: (32.0, 3.0), 18: (34.0, 10.0), 26: (43.0, 1.0), 28: (48.0, 12.0), 27: (46.0, 11.0), 30: (49.0, 16.0), 29: (49.0, 14.0)}
In [ ]:
 
In [ ]:
 

Se comienza el analisis con la componente R (Routing / Encaminamiento) en la red optica.

  1. Se plantea la siguiente propuesta de implementación del componente de Routing:

Algoritmos de encaminamiento tradicional:

  • Dijkstra
  • Bellman-Ford

Algoritmo de encaminamiento heurístico:

  • A*

Algoritmos de encaminamiento metaheurístico:

  • GA (Genetic Algorithm)
  • ACO (Ant Colony Optimization)
  • BCO (Bee Colony Optimization)
  • rNN (Recurrent Neural Network) (DESCARTADO)
  • PSO (Particle Swarm Optimization)
  • TSA (Tabu Search Algorithm) - Trabajo Futuro (solo se ha hecho exploración inicial y primera implenetación sin depurar)
  • SA (Simulated Anneal) - Trabajo Futuro (solo se ha hecho exploración inicial y primera implenetación sin depurar)
  • GWO (Grey Wolf Optimization) - Trabajo Futuro (solo se ha hecho exploración inicial y primera implenetación sin depurar)

Se descarta rNN por el tiempo necesario para generar datos de entrenamiento. La carga para CPU y memoria exige realizar esta parte en la nube con GPU's. Queda como propuesta de futuro trabajo.

  1. Crear una interfaz común y aproximación modular: El objetivo es que las funciones que implementan los algoritmos de encaminamiento seleccionados tengan una interfaz comun que permita una facil integración con el resto del codigo i.e.
  • el código de métricas que permite evaluar el rendimiento de los algoritmos.
  • facilite la depuración
  • reutilizar funciones y módulos de código
  • facilite la implementación de variaciones de modelos
  1. Evaluacion del rendmiento: Se trata de implementar mecanismos para evaluar el tiempo de convergencia, uso de memoria y CPU, y otros criterios de evaluación, como pro ejemplo análisis de las rutas (rutas óptimas vs. rutas subóptimas).
In [13]:
grafo_red = G_RefNet3_roadm.copy()
In [14]:
# Codigo de control interno para evaluar el estado del grafo
for edge in grafo_red.edges(data=True):
    print(edge)
(1, 3, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(1, 2, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(4, 3, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8})
(4, 8, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8})
(2, 5, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(3, 8, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8})
(5, 7, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6})
(7, 6, {'distancia': 70.0, 'atenuacion': 3.7, 'osnr': 7.8})
(7, 9, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6})
(8, 6, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1})
(8, 10, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6})
(10, 9, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1})
(10, 14, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6})
(9, 11, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(11, 13, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(12, 13, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(12, 14, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1})
(13, 17, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(13, 19, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8})
(19, 23, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(20, 16, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(20, 30, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8})
(14, 15, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(15, 18, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(21, 24, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(21, 17, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(22, 25, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(22, 18, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(23, 25, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(23, 26, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1})
(24, 26, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(25, 27, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(16, 18, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(28, 29, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(28, 27, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
(30, 29, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8})
In [15]:
# Función que analiza el grafo o la red propuesta y extrae estadísticos básicos
def analizar_red(grafo):
    # Extrae el número de nodos y enlaces
    num_nodos = grafo.number_of_nodes()
    num_enlaces = grafo.number_of_edges()
    print(f"Número de nodos: {num_nodos}")
    print(f"Número de enlaces: {num_enlaces}")
    
    # Genera una tabla con la conectividad de los nodos
    conectividad_nodos = {nodo: grafo.degree(nodo) for nodo in grafo.nodes()}
    df_conectividad = pd.DataFrame(conectividad_nodos.items(), columns=['Nodo', 'Conectividad'])
    print("\nTabla de conectividad de nodos:")
    print(df_conectividad)
    
    # Genera una tabla de porcentaje de nodos por conectividad
    conectividad_valores = df_conectividad['Conectividad'].value_counts().sort_index()
    conectividad_max = conectividad_valores.index.max()
    porcentaje_nodos = (conectividad_valores / num_nodos) * 100
    
    df_porcentaje_conectividad = pd.DataFrame({
        'Conectividad de nodo': range(1, conectividad_max + 1),
        'Porcentaje de nodos (%)': [porcentaje_nodos.get(i, 0) for i in range(1, conectividad_max + 1)]
    })
    
    print("\nTabla de porcentaje de nodos por conectividad:")
    print(df_porcentaje_conectividad)
In [16]:
# Analisis del modelo de red RefNet3
analizar_red(grafo_red)
Número de nodos: 30
Número de enlaces: 36

Tabla de conectividad de nodos:
    Nodo  Conectividad
0      1             2
1      4             2
2      2             2
3      3             3
4      5             2
5      7             3
6      8             4
7      6             2
8     10             3
9      9             3
10    11             2
11    12             2
12    13             4
13    19             2
14    20             2
15    14             3
16    15             2
17    21             2
18    22             2
19    23             3
20    24             2
21    25             3
22    16             2
23    17             2
24    18             3
25    26             2
26    28             2
27    27             2
28    30             2
29    29             2

Tabla de porcentaje de nodos por conectividad:
   Conectividad de nodo  Porcentaje de nodos (%)
0                     1                 0.000000
1                     2                66.666667
2                     3                26.666667
3                     4                 6.666667

Se define una función para contar el máximo número de rutas que existe entre los nodos 8 y 23. Esta dupla (origen, destino) es la que se va a utilizar para evaluar los algoritmos.

Cuando la evaluación de todos los algoritmos se hay realizado correctamente se procederá a calcular las rutas asociadas a las matrices de tráfico que se han especificado.

In [19]:
# Imprimir información del grafo
print("Nodos del grafo:", grafo_red.nodes())
print("Aristas del grafo:", grafo_red.edges())

# Imprimir el grado de cada nodo
print("Grado de cada nodo:")
for node in grafo_red.nodes():
    print(f"Nodo {node}: {grafo_red.degree(node)}")
Nodos del grafo: [1, 4, 2, 3, 5, 7, 8, 6, 10, 9, 11, 12, 13, 19, 20, 14, 15, 21, 22, 23, 24, 25, 16, 17, 18, 26, 28, 27, 30, 29]
Aristas del grafo: [(1, 3), (1, 2), (4, 3), (4, 8), (2, 5), (3, 8), (5, 7), (7, 6), (7, 9), (8, 6), (8, 10), (10, 9), (10, 14), (9, 11), (11, 13), (12, 13), (12, 14), (13, 17), (13, 19), (19, 23), (20, 16), (20, 30), (14, 15), (15, 18), (21, 24), (21, 17), (22, 25), (22, 18), (23, 25), (23, 26), (24, 26), (25, 27), (16, 18), (28, 29), (28, 27), (30, 29)]
Grado de cada nodo:
Nodo 1: 2
Nodo 4: 2
Nodo 2: 2
Nodo 3: 3
Nodo 5: 2
Nodo 7: 3
Nodo 8: 4
Nodo 6: 2
Nodo 10: 3
Nodo 9: 3
Nodo 11: 2
Nodo 12: 2
Nodo 13: 4
Nodo 19: 2
Nodo 20: 2
Nodo 14: 3
Nodo 15: 2
Nodo 21: 2
Nodo 22: 2
Nodo 23: 3
Nodo 24: 2
Nodo 25: 3
Nodo 16: 2
Nodo 17: 2
Nodo 18: 3
Nodo 26: 2
Nodo 28: 2
Nodo 27: 2
Nodo 30: 2
Nodo 29: 2
In [20]:
# Definir la función para encontrar todas las rutas utilizando DFS iterativo
def encuentra_todas_rutas(grafo, inicio, fin):
    stack = [(inicio, [inicio])]
    paths = []
    
    while stack:
        (vertex, path) = stack.pop()
        for next in set(grafo.neighbors(vertex)) - set(path):
            if next == fin:
                paths.append(path + [next])
            else:
                stack.append((next, path + [next]))
    return paths
In [21]:
# Verificar si los nodos 8 y 23 están en el grafo
print(8 in grafo_red.nodes())
print(23 in grafo_red.nodes())

origen = 8
destino = 23

# Encontrar todas las rutas desde el nodo 8 al nodo 23
#todas_rutas = find_all_paths(grafo_red, origen, destino)
todas_rutas = encuentra_todas_rutas(grafo_red, origen, destino)
print(f"Todas las rutas desde {origen} hasta {destino}: {todas_rutas}")

# Contar todas las rutas desde el nodo 8 al nodo 23
total_rutas = len(todas_rutas)
print(f"Total de rutas desde {origen} hasta {destino}: {total_rutas}")
True
True
Todas las rutas desde 8 hasta 23: [[8, 6, 7, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23], [8, 6, 7, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23], [8, 6, 7, 9, 10, 14, 15, 18, 22, 25, 23], [8, 6, 7, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 6, 7, 9, 10, 14, 12, 13, 19, 23], [8, 6, 7, 9, 10, 14, 12, 13, 17, 21, 24, 26, 23], [8, 4, 3, 1, 2, 5, 7, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23], [8, 4, 3, 1, 2, 5, 7, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 4, 3, 1, 2, 5, 7, 9, 11, 13, 19, 23], [8, 4, 3, 1, 2, 5, 7, 9, 11, 13, 17, 21, 24, 26, 23], [8, 4, 3, 1, 2, 5, 7, 9, 10, 14, 15, 18, 22, 25, 23], [8, 4, 3, 1, 2, 5, 7, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 4, 3, 1, 2, 5, 7, 9, 10, 14, 12, 13, 19, 23], [8, 4, 3, 1, 2, 5, 7, 9, 10, 14, 12, 13, 17, 21, 24, 26, 23], [8, 3, 1, 2, 5, 7, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23], [8, 3, 1, 2, 5, 7, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 3, 1, 2, 5, 7, 9, 11, 13, 19, 23], [8, 3, 1, 2, 5, 7, 9, 11, 13, 17, 21, 24, 26, 23], [8, 3, 1, 2, 5, 7, 9, 10, 14, 15, 18, 22, 25, 23], [8, 3, 1, 2, 5, 7, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 3, 1, 2, 5, 7, 9, 10, 14, 12, 13, 19, 23], [8, 3, 1, 2, 5, 7, 9, 10, 14, 12, 13, 17, 21, 24, 26, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 14, 12, 13, 17, 21, 24, 26, 23], [8, 10, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 17, 21, 24, 26, 23]]
Total de rutas desde 8 hasta 23: 32
In [22]:
# Verificar si los nodos 8 y 7 están en el grafo
print(8 in grafo_red.nodes())
print(7 in grafo_red.nodes())

origen = 8
destino = 7

# Encontrar todas las rutas desde el nodo 8 al nodo 7
#todas_rutas = find_all_paths(grafo_red, origen, destino)
todas_rutas = encuentra_todas_rutas(grafo_red, origen, destino)
print(f"Todas las rutas desde {origen} hasta {destino}: {todas_rutas}")

# Contar todas las rutas desde el nodo 8 al nodo 7
total_rutas = len(todas_rutas)
print(f"Total de rutas desde {origen} hasta {destino}: {total_rutas}")
True
True
Todas las rutas desde 8 hasta 7: [[8, 6, 7], [8, 4, 3, 1, 2, 5, 7], [8, 3, 1, 2, 5, 7], [8, 10, 14, 15, 18, 22, 25, 23, 19, 13, 11, 9, 7], [8, 10, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17, 13, 11, 9, 7], [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19, 13, 11, 9, 7], [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 11, 9, 7], [8, 10, 14, 12, 13, 11, 9, 7], [8, 10, 9, 7]]
Total de rutas desde 8 hasta 7: 9
In [ ]:
 
In [ ]:
 

Funciones Comunes

Funciones comunes que se utilizan / reutilizan en distintas partes del codigo

In [51]:
# A partir de la funcion anterior se amplia el criterio de evaluacion de la ruta para incluir distancia
# Esto permitira evaluar la distancia de la ruta calculada
# y en el futuro, implementar estos algoritmos de encaminamiento con coste admnistrativo = distancia (e.g. capa IP / routers)
# V3.0 (distancia, atenuacion, osnr) es la versión anterior 
# V4.0 (distancia, atenuacion, osnr, retardo) es la versión actual y definitiva
def evaluar_ruta(ruta, grafo):
    distancia_total = 0
    atenuacion_total = 0
    osnr_total = float('inf')
    # Retardo de procesamiento por nodo en segundos. Es una aproximación, como todo el modelo de red.
    #Agnóstico respecto de fabricantes e integradores (componentes, módulos, equipos)
    retardo_procesamiento_por_nodo = 0.0002  
    
    for i in range(len(ruta) - 1):
        u = ruta[i]
        v = ruta[i + 1]
        if grafo.has_edge(u, v):
            datos_enlace = grafo[u][v]
            distancia_total += datos_enlace['distancia']
            atenuacion_total += datos_enlace['atenuacion']
            osnr_total = min(osnr_total, datos_enlace['osnr'])
        else:
            return (float('inf'), float('inf'), 0, float('inf'))
    
    # Calcula retardo de propagación
    retardo_propagacion = distancia_total * 1000 / velocidad_luz_fibra  # Convertir distancia de km a m
    
    # Calcula retardo de procesamiento total
    numero_nodos = len(ruta) - 1
    retardo_procesamiento_total = numero_nodos * retardo_procesamiento_por_nodo
    
    # Calcula retardo end-to-end total
    retardo_total = retardo_propagacion + retardo_procesamiento_total  # en segundos
    
    # Convierte a ms (se retorna el retardo en ms. Unidad de medida habitual con este parámetro)
    retardo_total_ms = retardo_total * 1000
    
    return (round(distancia_total, 1), round(atenuacion_total, 1), round(osnr_total, 1), round(retardo_total_ms, 1))
    
In [52]:
# Función para imprimir resultados asociados a rutas simples (i.e. solo ruta primaria) 
def imprimir_resultado_rutas_simples(resultados, algoritmo):
    if resultados is None:
        print(f'No se encontró una ruta utilizando el algoritmo: {algoritmo}')
        return
    
    print(f'\nAlgoritmo: {algoritmo}')
    print(f"  Ruta: {resultados['ruta']}")
    print(f"  Distancia: {resultados['distancia']} km")
    print(f"  Atenuación: {resultados['atenuacion']} dB")
    print(f"  OSNR: {resultados['osnr']} dB")
    print(f"  Latencia e2e: {resultados['retardo']} ms")
    print(f"  Tiempo de cálculo: {resultados['tiempo_ejecucion']} s")
    print(f"  Uso de CPU: {resultados['uso_cpu']} %")
    print(f"  Uso de memoria: {resultados['uso_memoria']} MB")
In [53]:
# Función que representa gráficamente la ruta en el grafo.
# Es una adaptación de la función usada para rutas disjuntas.
def dibujar_ruta(grafo, ruta, nombre_algoritmo):
    # Posiciones y etiquetas
    pos = {node: (data['pos'][0], data['pos'][1]) for node, data in grafo.nodes(data=True)}
    labels = {node: data['name'] for node, data in grafo.nodes(data=True)}

    plt.figure(figsize=(12, 8))

    # Dibujar el grafo base
    nx.draw(grafo, pos, with_labels=True, labels=labels, node_size=500, node_color='skyblue', font_size=8, font_weight='bold')

    # Añadir etiquetas a los enlaces (distancias)
    edge_labels = nx.get_edge_attributes(grafo, 'distancia')
    edge_labels = {k: f"{v:.0f}" for k, v in edge_labels.items()}
    nx.draw_networkx_edge_labels(grafo, pos, edge_labels=edge_labels)

    # Dibujar la ruta primaria en rojo
    if ruta and len(ruta) > 1:
        ruta_primaria = [(ruta[i], ruta[i+1]) for i in range(len(ruta)-1)]
        nx.draw_networkx_edges(grafo, pos, edgelist=ruta_primaria, edge_color='red', width=2)

    plt.title(f'Topología de la Red Óptica DWDM ROADM | {nombre_algoritmo} | Ruta sin Protección')
    plt.show()

Algoritmos de encaminamiento

Algoritmos de encaminamiento tradicionales

Algoritmo Dijkstra

In [56]:
# Algoritmo Dijkstra
def calcula_ruta_dijkstra(grafo, origen, destino, metrica='atenuacion'):
    try:
        tiempo_inicio = time.time()
        
        # Calcular la ruta utilizando Dijkstra
        ruta = nx.dijkstra_path(grafo, origen, destino, weight=metrica)
        
        tiempo_final = time.time()
        tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

        # Evaluar la ruta para obtener distancia, atenuación y OSNR
        distancia, atenuacion, osnr, retardo = evaluar_ruta(ruta, grafo)

        # Obtener el uso de CPU y memoria
        uso_cpu = round(psutil.cpu_percent(interval=0.1), 2)
        uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

        return {
            'ruta': ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
        }
    except nx.NetworkXNoPath:
        return None
In [58]:
# Test de validacion Algoritmo Dijkstra. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_dijkstra(grafo, origen, destino)

nombre_algoritmo = 'Dijkstra'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: Dijkstra
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.000236 s
  Uso de CPU: 17.1 %
  Uso de memoria: 8549.38 MB
In [59]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo Dijkstra
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'Dijkstra'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [62]:
# Test de validacion Algoritmo Dijkstra. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_dijkstra(grafo, origen, destino)

nombre_algoritmo = 'Dijkstra'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: Dijkstra
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 8.87e-05 s
  Uso de CPU: 17.5 %
  Uso de memoria: 8550.56 MB
In [63]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo Dijkstra
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'Dijkstra'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo Bellman-Ford

In [64]:
# Algoritmo Bellman-Ford
def calcula_ruta_bellman_ford(grafo, origen, destino, metrica='atenuacion'):
    try:
        tiempo_inicio = time.time()

        # Calcular la ruta utilizando Bellman-Ford
        ruta = nx.bellman_ford_path(grafo, source=origen, target=destino, weight=metrica)

        tiempo_final = time.time()
        tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

        # Evaluar la ruta para obtener distancia, atenuación y OSNR
        distancia, atenuacion, osnr, retardo = evaluar_ruta(ruta, grafo)

        # Obtener el uso de CPU y memoria
        uso_cpu = round(psutil.cpu_percent(), 2)
        uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

        return {
            'ruta': ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
        }
    except nx.NetworkXNoPath:
        return None
In [69]:
# Test de validacion Algoritmo Bellman-Ford. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_bellman_ford(grafo, origen, destino)

nombre_algoritmo = 'Bellman-Ford'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: Bellman-Ford
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0002403 s
  Uso de CPU: 6.7 %
  Uso de memoria: 8532.62 MB
In [70]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo Bellman-Ford
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'Bellman-Ford'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [71]:
# Test de validacion Algoritmo Bellman-Ford. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_bellman_ford(grafo, origen, destino)

nombre_algoritmo = 'Bellman-Ford'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: Bellman-Ford
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0002701 s
  Uso de CPU: 10.6 %
  Uso de memoria: 8521.92 MB
In [72]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo Bellman-Ford
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'Bellman-Ford'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmos de encaminamiento heurísticos

Algoritmo A(*) heurística None

In [73]:
# Algoritmo A* con heuristica 'None'
# la heurística es nula i.e. siempre devuelve cero)
# De facto, el algoritmo A* se comporta como el algoritmo de Dijkstra
def calcula_ruta_a_star_none(grafo, origen, destino, heuristica=None):
    try:
        tiempo_inicio = time.time()

        # Calcular la ruta utilizando A*
        ruta = nx.astar_path(grafo, origen, destino, heuristic=heuristica, weight='atenuacion')

        tiempo_final = time.time()
        tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

        # Evaluar la ruta para obtener atenuación y OSNR
        distancia, atenuacion, osnr, retardo = evaluar_ruta(ruta, grafo)

        # Obtener el uso de CPU y memoria
        uso_cpu = round(psutil.cpu_percent(), 2)
        uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)

        return {
            'ruta': ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
        }
    except nx.NetworkXNoPath:
        return None
In [78]:
# Test de validacion Algoritmo A* heurística None. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_a_star_none(grafo, origen, destino)

nombre_algoritmo = 'A* heurística None'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: A* heurística None
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0001462 s
  Uso de CPU: 12.7 %
  Uso de memoria: 8548.17 MB
In [79]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo A* heurística None
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'A* heurística none'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [80]:
# Test de validacion Algoritmo A* heurística None. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_a_star_none(grafo, origen, destino)

nombre_algoritmo = 'A* heurística None'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: A* heurística None
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 7.39e-05 s
  Uso de CPU: 8.1 %
  Uso de memoria: 8467.09 MB
In [82]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo A* heurística None
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'A* heurística none'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo A(*) heurística Euclídea

In [83]:
# Función heurística euclidiana
def heuristica_euclidea(grafo, nodo, destino):
    x1, y1 = grafo.nodes[nodo]['pos']
    x2, y2 = grafo.nodes[destino]['pos']
    return math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)

# Función que calcula la ruta con A* y heuristica  distancia euclidea
def calcula_ruta_a_star_euclidea(grafo, origen, destino, heuristica=heuristica_euclidea):
    try:
        tiempo_inicio = time.time()

        # Calcula la ruta utilizando A* con la heurística proporcionada
        ruta = nx.astar_path(grafo, origen, destino, heuristic=lambda n, d: heuristica(grafo, n, d), weight='atenuacion')

        tiempo_final = time.time()
        tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

        # Evalua la ruta para obtener atenuación y OSNR
        distancia, atenuacion, osnr, retardo = evaluar_ruta(ruta, grafo)

        # Obtiene el uso de CPU y memoria
        uso_cpu = round(psutil.cpu_percent(), 2)
        uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)

        return {
            'ruta': ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
        }
    except nx.NetworkXNoPath:
        return None
In [84]:
# Test de validacion Algoritmo A* heurística Euclídea. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_a_star_euclidea(grafo, origen, destino)

nombre_algoritmo = 'A* heurística euclídea'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: A* heurística euclídea
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.000139 s
  Uso de CPU: 11.5 %
  Uso de memoria: 8541.31 MB
In [85]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo A* heurística Euclídea
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'A* heurística euclídea'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [86]:
# Test de validacion Algoritmo A* heurística Euclídea. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_a_star_euclidea(grafo, origen, destino)

nombre_algoritmo = 'A* heurística euclídea'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: A* heurística euclídea
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 8.13e-05 s
  Uso de CPU: 9.6 %
  Uso de memoria: 8544.09 MB
In [88]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo A* heurística Euclídea
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'A* heurística euclídea'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo A(*) heurística Manhattan

In [89]:
# Algoritmno A* con función heurística Manhattan
def heuristica_manhattan(grafo, nodo, destino):
    x1, y1 = grafo.nodes[nodo]['pos']
    x2, y2 = grafo.nodes[destino]['pos']
    return abs(x1 - x2) + abs(y1 - y2)

# Funcion que calcula la ruta con A* y heuristica  distancia euclidea
def calcula_ruta_a_star_man(grafo, origen, destino, heuristica=heuristica_manhattan):
    try:
        tiempo_inicio = time.time()

        # Calcular la ruta utilizando A* con la heurística proporcionada
        ruta = nx.astar_path(grafo, origen, destino, heuristic=lambda n, d: heuristica(grafo, n, d), weight='atenuacion')

        tiempo_final = time.time()
        tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

        # Evaluar la ruta para obtener atenuación y OSNR
        distancia, atenuacion, osnr, retardo = evaluar_ruta(ruta, grafo)

        # Obtener el uso de CPU y memoria
        uso_cpu = round(psutil.cpu_percent(), 2)
        uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

        return {
            'ruta': ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
        }
    except nx.NetworkXNoPath:
        return None
 
In [90]:
# Test de validacion Algoritmo A* heurística Manhattan. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_a_star_man(grafo, origen, destino)

nombre_algoritmo = 'A* heurística Manhattan'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: A* heurística Manhattan
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.000181 s
  Uso de CPU: 10.5 %
  Uso de memoria: 8484.36 MB
In [91]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo A* heurística Manhattan
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'A* heurística Manhattan'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [92]:
# Test de validacion Algoritmo A* heurística Manhattan. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_a_star_man(grafo, origen, destino)

nombre_algoritmo = 'A* heurística Manhattan'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: A* heurística Manhattan
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 8.89e-05 s
  Uso de CPU: 13.9 %
  Uso de memoria: 8523.88 MB
In [93]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo A* heurística Manhattan
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'A* heurística Manhattan'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [94]:
# Funcion de control interno

def verificar_coordenadas_nodos(grafo):
    for nodo in grafo.nodes(data=True):
        if 'pos' in nodo[1]:
            print(f"Nodo {nodo[0]}: x = {nodo[1]['pos'][0]}, y = {nodo[1]['pos'][1]}")
        else:
            print(f"Nodo {nodo[0]} no tiene coordenadas definidas.")

# Llamar a la función para verificar las coordenadas de los nodos
verificar_coordenadas_nodos(grafo_red)
Nodo 1: x = 1.0, y = 9.0
Nodo 4: x = 4.0, y = 17.0
Nodo 2: x = 2.0, y = 7.0
Nodo 3: x = 3.0, y = 10.0
Nodo 5: x = 5.0, y = 5.0
Nodo 7: x = 11.0, y = 4.0
Nodo 8: x = 14.0, y = 11.0
Nodo 6: x = 9.0, y = 7.0
Nodo 10: x = 20.0, y = 9.0
Nodo 9: x = 18.0, y = 3.0
Nodo 11: x = 23.0, y = 2.0
Nodo 12: x = 25.0, y = 4.0
Nodo 13: x = 27.0, y = 2.0
Nodo 19: x = 36.0, y = 7.0
Nodo 20: x = 37.0, y = 13.0
Nodo 14: x = 28.0, y = 10.0
Nodo 15: x = 31.0, y = 9.0
Nodo 21: x = 37.0, y = 4.0
Nodo 22: x = 39.0, y = 10.0
Nodo 23: x = 40.0, y = 8.0
Nodo 24: x = 40.0, y = 2.0
Nodo 25: x = 43.0, y = 10.0
Nodo 16: x = 32.0, y = 12.0
Nodo 17: x = 32.0, y = 3.0
Nodo 18: x = 34.0, y = 10.0
Nodo 26: x = 43.0, y = 1.0
Nodo 28: x = 48.0, y = 12.0
Nodo 27: x = 46.0, y = 11.0
Nodo 30: x = 49.0, y = 16.0
Nodo 29: x = 49.0, y = 14.0
In [ ]:
 

Algoritmos de encaminamiento metaheurístico

Algoritmo Genético Básico

In [95]:
# Algoritmo Genético Básico

# Version 1.0. Esta version funciona perfectamente con rutas simples
# Tiene un bug que hace que entre en bucle infinito si GA no es capaz de encontrar la ruta secundaria
# en casos en los que hay restricciones de topologia 
#def generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion):
#    # Esta función debe generar una población inicial de rutas válidas
#    poblacion = []
#    for _ in range(tamano_poblacion):
#        ruta = [origen]
#        while ruta[-1] != destino:
#            siguiente_nodo = random.choice(list(grafo.neighbors(ruta[-1])))
#            if siguiente_nodo not in ruta:
#                ruta.append(siguiente_nodo)
#            else:
#                ruta = [origen]  # Reiniciar si hay un ciclo
#        poblacion.append(ruta)
#    return poblacion

def generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion, max_intentos=1000):
    poblacion = []
    for _ in range(tamano_poblacion):
        intentos = 0
        while intentos < max_intentos:
            ruta = [origen]
            while ruta[-1] != destino:
                vecinos = list(grafo.neighbors(ruta[-1]))
                if not vecinos:  # Si no hay vecinos, salir del bucle
                    break
                siguiente_nodo = random.choice(vecinos)
                if siguiente_nodo not in ruta:
                    ruta.append(siguiente_nodo)
                else:
                    ruta = [origen]  # Reiniciar si hay un ciclo
                if len(ruta) > len(grafo):  # Evitar rutas excesivamente largas
                    break
            if ruta[-1] == destino:
                poblacion.append(ruta)
                break
            intentos += 1
            print(f"Intento {intentos} fallido para generar una ruta de {origen} a {destino}")
        else:
            print("No se pudo generar una ruta válida desde el origen hasta el destino después de varios intentos")
            raise ValueError("No se pudo generar una ruta válida desde el origen hasta el destino")
    return poblacion

def seleccion_por_torneo(poblacion, grafo):
    # Esta función debe implementar la selección por torneo
    return poblacion

def cruce(padre1, padre2):
    # Asegurarse de que las rutas sean lo suficientemente largas para el cruce
    if min(len(padre1), len(padre2)) <= 2:
        # Manejar el caso donde las rutas son demasiado cortas para el cruce
        return padre1, padre2
    
    # Implementar el cruce de dos rutas
    punto_cruce = random.randint(1, min(len(padre1), len(padre2)) - 2)
    hijo1 = padre1[:punto_cruce] + [nodo for nodo in padre2 if nodo not in padre1[:punto_cruce]]
    hijo2 = padre2[:punto_cruce] + [nodo for nodo in padre1 if nodo not in padre2[:punto_cruce]]
    return hijo1, hijo2

def mutacion(ruta, tasa_mutacion):
    # Asegurarse de que la ruta sea lo suficientemente larga para la mutación
    if len(ruta) <= 2:
        return
    
    # Implementar la mutación de una ruta
    if random.random() < tasa_mutacion:
        indice1 = random.randint(1, len(ruta) - 2)
        indice2 = random.randint(1, len(ruta) - 2)
        ruta[indice1], ruta[indice2] = ruta[indice2], ruta[indice1]


def calcula_ruta_ga_basico(grafo, origen, destino, generaciones=20, tamano_poblacion=10, tasa_mutacion=0.1, elitismo=0.1):
    tiempo_inicio = time.time()

    poblacion = generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion)
    print(f"Generación inicial: {poblacion}")

    mejor_ruta = min(poblacion, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
    cantidad_elitismo = int(tamano_poblacion * elitismo)
    
    for generacion in range(generaciones):
        print(f"Generación {generacion+1}/{generaciones}")
        
        poblacion = seleccion_por_torneo(poblacion, grafo)
        nueva_poblacion = []
        
        while len(nueva_poblacion) < tamano_poblacion - cantidad_elitismo:
            padre1, padre2 = random.sample(poblacion, 2)
            hijo1, hijo2 = cruce(padre1, padre2)
            mutacion(hijo1, tasa_mutacion)
            mutacion(hijo2, tasa_mutacion)
            if hijo1[-1] == destino and evaluar_ruta(hijo1, grafo)[0] < float('inf'):
                nueva_poblacion.append(hijo1)
            if hijo2[-1] == destino and evaluar_ruta(hijo2, grafo)[0] < float('inf'):
                nueva_poblacion.append(hijo2)
        
        if len(nueva_poblacion) < tamano_poblacion - cantidad_elitismo:
            nueva_poblacion += generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion - len(nueva_poblacion))
        
        # Mantener las mejores rutas de la generación anterior
        mejores_rutas = sorted(poblacion, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])[:cantidad_elitismo]
        nueva_poblacion.extend(mejores_rutas)
        
        mejor_ruta_generacion = min(nueva_poblacion, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
        if evaluar_ruta(mejor_ruta_generacion, grafo)[0] < evaluar_ruta(mejor_ruta, grafo)[0]:
            mejor_ruta = mejor_ruta_generacion
        
        poblacion = nueva_poblacion[:tamano_poblacion]
        print(f"Población de la generación {generacion+1}: {poblacion}")
        print(f"Mejor ruta hasta ahora: {mejor_ruta} con evaluación {evaluar_ruta(mejor_ruta, grafo)}")
    
    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_ruta, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': mejor_ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [96]:
# Test de validacion Algoritmo GA Básico. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_ga_basico(grafo, origen, destino)

nombre_algoritmo = 'GA Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Generación inicial: [[8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23]]
Generación 1/20
Población de la generación 1: [[8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 2/20
Población de la generación 2: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 3/20
Población de la generación 3: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 4/20
Población de la generación 4: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 5/20
Población de la generación 5: [[8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 6/20
Población de la generación 6: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 7/20
Población de la generación 7: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 8/20
Población de la generación 8: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 9/20
Población de la generación 9: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 10/20
Población de la generación 10: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 11/20
Población de la generación 11: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 12/20
Población de la generación 12: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 13/20
Población de la generación 13: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 14/20
Población de la generación 14: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 15/20
Población de la generación 15: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 16/20
Población de la generación 16: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 17/20
Población de la generación 17: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 18/20
Población de la generación 18: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 19/20
Población de la generación 19: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)
Generación 20/20
Población de la generación 20: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 9, 11, 13, 19, 23] con evaluación (600.0, 32.0, 1, 4.2)

Algoritmo: GA Básico
  Ruta: [8, 10, 9, 11, 13, 19, 23]
  Distancia: 600.0 km
  Atenuación: 32.0 dB
  OSNR: 1 dB
  Latencia e2e: 4.2 ms
  Tiempo de cálculo: 0.0269332 s
  Uso de CPU: 8.0 %
  Uso de memoria: 8526.12 MB
In [97]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo Genético Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'GA Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [98]:
# Test de validacion Algoritmo GA Básico. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_ga_basico(grafo, origen, destino)

nombre_algoritmo = 'GA Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Generación inicial: [[8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Generación 1/20
Población de la generación 1: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 2/20
Población de la generación 2: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 3/20
Población de la generación 3: [[8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 4/20
Población de la generación 4: [[8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 5/20
Población de la generación 5: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 6/20
Población de la generación 6: [[8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 7/20
Población de la generación 7: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 8/20
Población de la generación 8: [[8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 9/20
Población de la generación 9: [[8, 6, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 10/20
Población de la generación 10: [[8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 11/20
Población de la generación 11: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 12/20
Población de la generación 12: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 13/20
Población de la generación 13: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 14/20
Población de la generación 14: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 15/20
Población de la generación 15: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 16/20
Población de la generación 16: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 17/20
Población de la generación 17: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 18/20
Población de la generación 18: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 19/20
Población de la generación 19: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 20/20
Población de la generación 20: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)

Algoritmo: GA Básico
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.011452 s
  Uso de CPU: 10.9 %
  Uso de memoria: 8494.06 MB
In [99]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo Genético Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'GA Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo Genético Optimizado

In [100]:
# Algoritmo GA Optimizado

# Optimización: mas diversidad en la poblacion inicial, mejor cruce y mas competicion.

# se genera poblacion inicial mas diversa que en el algoritmo GA básico
def generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion):
    poblacion = []
    for _ in range(tamano_poblacion):
        ruta = [origen]
        while ruta[-1] != destino:
            vecinos = list(grafo.neighbors(ruta[-1]))
            siguiente_nodo = random.choice(vecinos)
            if siguiente_nodo not in ruta:
                ruta.append(siguiente_nodo)
            else:
                ruta = [origen]  # Reiniciar si hay un ciclo
        poblacion.append(ruta)
    return poblacion

def seleccion_por_torneo(poblacion, grafo, k=3):
    nueva_poblacion = []
    for _ in range(len(poblacion)):
        torneo = random.sample(poblacion, k)
        mejor_individuo = min(torneo, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
        nueva_poblacion.append(mejor_individuo)
    return nueva_poblacion

#Esta version funciona pero no tiene en cuenta la excepcion de rutas directas
#def cruce(padre1, padre2):
#    punto_cruce = random.randint(1, min(len(padre1), len(padre2)) - 2)
#    hijo1 = padre1[:punto_cruce] + [nodo for nodo in padre2 if nodo not in padre1[:punto_cruce]]
#    hijo2 = padre2[:punto_cruce] + [nodo for nodo in padre1 if nodo not in padre2[:punto_cruce]]
#    return hijo1, hijo2

# versión definitiva ya que soporta los casos de rutas muy cortas, incluidas rutas directas
def cruce(padre1, padre2):
    if len(padre1) > 2 and len(padre2) > 2:
        punto_cruce = random.randint(1, min(len(padre1), len(padre2)) - 2)
        hijo1 = padre1[:punto_cruce] + [nodo for nodo in padre2 if nodo not in padre1[:punto_cruce]]
        hijo2 = padre2[:punto_cruce] + [nodo for nodo in padre1 if nodo not in padre2[:punto_cruce]]
    else:
        hijo1, hijo2 = padre1[:], padre2[:]  # Excepción: No realizar cruce si las rutas son muy cortas !!!
    return hijo1, hijo2

#Esta version funciona pero no tiene en cuenta la excepcion de rutas directas
#def mutacion(ruta, tasa_mutacion):
#    if random.random() < tasa_mutacion:
#        indice1 = random.randint(1, len(ruta) - 2)
#        indice2 = random.randint(1, len(ruta) - 2)
#        ruta[indice1], ruta[indice2] = ruta[indice2], ruta[indice1]

# versión definitiva ya que soporta los casos de rutas muy cortas, incluidas rutas directas
def mutacion(ruta, tasa_mutacion):
    if len(ruta) > 2:  # Importante: asegurarse de que la ruta es lo suficientemente larga para la mutación !!!
        for i in range(1, len(ruta) - 1):  # Importante: excluir origen y destino de la mutación !!!
            if random.random() < tasa_mutacion:
                indice1 = random.randint(1, len(ruta) - 2)
                indice2 = random.randint(1, len(ruta) - 2)
                ruta[indice1], ruta[indice2] = ruta[indice2], ruta[indice1]


def calcula_ruta_ga_opt(grafo, origen, destino, generaciones=50, tamano_poblacion=10, tasa_mutacion=0.1, elitismo=0.1):
    tiempo_inicio = time.time()

    poblacion = generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion)
    print(f"Generación inicial: {poblacion}")

    mejor_ruta = min(poblacion, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
    cantidad_elitismo = int(tamano_poblacion * elitismo)
    
    for generacion in range(generaciones):
        print(f"Generación {generacion+1}/{generaciones}")
        
        poblacion = seleccion_por_torneo(poblacion, grafo)
        nueva_poblacion = []
        
        while len(nueva_poblacion) < tamano_poblacion - cantidad_elitismo:
            padre1, padre2 = random.sample(poblacion, 2)
            hijo1, hijo2 = cruce(padre1, padre2)
            mutacion(hijo1, tasa_mutacion)
            mutacion(hijo2, tasa_mutacion)
            if hijo1[-1] == destino and evaluar_ruta(hijo1, grafo)[0] < float('inf'):
                nueva_poblacion.append(hijo1)
            if hijo2[-1] == destino and evaluar_ruta(hijo2, grafo)[0] < float('inf'):
                nueva_poblacion.append(hijo2)
        
        if len(nueva_poblacion) < tamano_poblacion - cantidad_elitismo:
            nueva_poblacion += generar_poblacion_inicial(grafo, origen, destino, tamano_poblacion - len(nueva_poblacion))
        
        # Mantener las mejores rutas de la generación anterior
        mejores_rutas = sorted(poblacion, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])[:cantidad_elitismo]
        nueva_poblacion.extend(mejores_rutas)
        
        mejor_ruta_generacion = min(nueva_poblacion, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
        if evaluar_ruta(mejor_ruta_generacion, grafo)[0] < evaluar_ruta(mejor_ruta, grafo)[0]:
            mejor_ruta = mejor_ruta_generacion
        
        poblacion = nueva_poblacion[:tamano_poblacion]
        print(f"Población de la generación {generacion+1}: {poblacion}")
        print(f"Mejor ruta hasta ahora: {mejor_ruta} con evaluación {evaluar_ruta(mejor_ruta, grafo)}")
    
    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evalua la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_ruta, grafo)

    # Obtiene el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': mejor_ruta,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [101]:
# Test de validacion Algoritmo GA Optimizado. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_ga_opt(grafo, origen, destino)

nombre_algoritmo = 'GA Optimizado'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Generación inicial: [[8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23]]
Generación 1/50
Población de la generación 1: [[8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 2/50
Población de la generación 2: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 3/50
Población de la generación 3: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 4/50
Población de la generación 4: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 5/50
Población de la generación 5: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 6/50
Población de la generación 6: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 7/50
Población de la generación 7: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 8/50
Población de la generación 8: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 9/50
Población de la generación 9: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 10/50
Población de la generación 10: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 11/50
Población de la generación 11: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 12/50
Población de la generación 12: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 13/50
Población de la generación 13: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 14/50
Población de la generación 14: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 15/50
Población de la generación 15: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 16/50
Población de la generación 16: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 17/50
Población de la generación 17: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 18/50
Población de la generación 18: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 19/50
Población de la generación 19: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 20/50
Población de la generación 20: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 21/50
Población de la generación 21: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 22/50
Población de la generación 22: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 23/50
Población de la generación 23: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 24/50
Población de la generación 24: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 25/50
Población de la generación 25: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 26/50
Población de la generación 26: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 27/50
Población de la generación 27: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 28/50
Población de la generación 28: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 29/50
Población de la generación 29: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 30/50
Población de la generación 30: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 31/50
Población de la generación 31: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 32/50
Población de la generación 32: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 33/50
Población de la generación 33: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 34/50
Población de la generación 34: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 35/50
Población de la generación 35: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 36/50
Población de la generación 36: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 37/50
Población de la generación 37: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 38/50
Población de la generación 38: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 39/50
Población de la generación 39: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 40/50
Población de la generación 40: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 41/50
Población de la generación 41: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 42/50
Población de la generación 42: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 43/50
Población de la generación 43: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 44/50
Población de la generación 44: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 45/50
Población de la generación 45: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 46/50
Población de la generación 46: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 47/50
Población de la generación 47: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 48/50
Población de la generación 48: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 49/50
Población de la generación 49: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 50/50
Población de la generación 50: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)

Algoritmo: GA Optimizado
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0823801 s
  Uso de CPU: 12.7 %
  Uso de memoria: 8579.66 MB
In [102]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo Genético Optimizado
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'GA Optimizado'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [103]:
# Test de validacion Algoritmo GA Optimizado. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_ga_opt(grafo, origen, destino)

nombre_algoritmo = 'GA Optimizado'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Generación inicial: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Generación 1/50
Población de la generación 1: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 2/50
Población de la generación 2: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 3/50
Población de la generación 3: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 4/50
Población de la generación 4: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 5/50
Población de la generación 5: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 6/50
Población de la generación 6: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 7/50
Población de la generación 7: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 8/50
Población de la generación 8: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 9/50
Población de la generación 9: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 10/50
Población de la generación 10: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 11/50
Población de la generación 11: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 12/50
Población de la generación 12: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 13/50
Población de la generación 13: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 14/50
Población de la generación 14: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 15/50
Población de la generación 15: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 16/50
Población de la generación 16: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 17/50
Población de la generación 17: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 18/50
Población de la generación 18: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 19/50
Población de la generación 19: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 20/50
Población de la generación 20: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 21/50
Población de la generación 21: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 22/50
Población de la generación 22: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 23/50
Población de la generación 23: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 24/50
Población de la generación 24: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 25/50
Población de la generación 25: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 26/50
Población de la generación 26: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 27/50
Población de la generación 27: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 28/50
Población de la generación 28: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 29/50
Población de la generación 29: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 30/50
Población de la generación 30: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 31/50
Población de la generación 31: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 32/50
Población de la generación 32: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 33/50
Población de la generación 33: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 34/50
Población de la generación 34: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 35/50
Población de la generación 35: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 36/50
Población de la generación 36: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 37/50
Población de la generación 37: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 38/50
Población de la generación 38: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 39/50
Población de la generación 39: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 40/50
Población de la generación 40: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 41/50
Población de la generación 41: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 42/50
Población de la generación 42: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 43/50
Población de la generación 43: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 44/50
Población de la generación 44: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 45/50
Población de la generación 45: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 46/50
Población de la generación 46: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 47/50
Población de la generación 47: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 48/50
Población de la generación 48: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 49/50
Población de la generación 49: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 50/50
Población de la generación 50: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)

Algoritmo: GA Optimizado
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.056308 s
  Uso de CPU: 8.5 %
  Uso de memoria: 8578.7 MB
In [104]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo Genético Optimizado
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'GA Optimizado'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo ACO Basico

In [105]:
# Algoritmo ACO Básico

def inicializar_feromonas(grafo, valor_inicial=1.0):
    feromonas = {}
    for u, v in grafo.edges():
        feromonas[(u, v)] = valor_inicial
    return feromonas

def actualizar_feromonas(feromonas, rutas, evaporacion=0.5, Q=100):
    for k in feromonas:
        feromonas[k] *= (1 - evaporacion)
    for ruta in rutas:
        for i in range(len(ruta) - 1):
            u, v = ruta[i], ruta[i + 1]
            feromonas[(u, v)] += Q / len(ruta)
    return feromonas

# Funcion que permite seleccionar una ruta, teniendo en cuenta el grafo, dupla origen y destino
# las feromonas y los hiperparametros
def seleccionar_ruta(grafo, feromonas, origen, destino, alpha=1.0, beta=1.0):
    ruta = [origen]
    while ruta[-1] != destino:
        actual = ruta[-1]
        vecinos = list(grafo.neighbors(actual))
        if destino in vecinos:
            ruta.append(destino)
            break
        probabilidades = []
        for vecino in vecinos:
            if vecino not in ruta:
                tau = feromonas[(actual, vecino)] ** alpha
                eta = (1 / grafo[actual][vecino]['weight']) ** beta
                probabilidades.append((tau * eta, vecino))
        if not probabilidades:
            return None
        total_prob = sum(prob[0] for prob in probabilidades)
        probabilidades = [(prob[0] / total_prob, prob[1]) for prob in probabilidades]
        siguiente = random.choices([prob[1] for prob in probabilidades], [prob[0] for prob in probabilidades])[0]
        ruta.append(siguiente)
    return ruta


def calcula_ruta_aco_basico(grafo, origen, destino, num_ants=20, num_iterations=200, alpha=1.0, beta=1.0, evaporation_rate=0.5, pheromone_deposit=1.0):
    tiempo_inicio = time.time()

    # Inicializar feromonas
    pheromone = {edge: 1.0 for edge in grafo.edges}
    best_route = None
    best_cost = float('inf')

    for iteracion in range(num_iterations):
        routes = []
        for ant in range(num_ants):
            route = [origen]
            current = origen
            visited = set(route)

            while current != destino:
                neighbors = list(grafo.neighbors(current))
                unvisited_neighbors = [n for n in neighbors if n not in visited]  # Evitar nodos visitados

                if not unvisited_neighbors:
                    break

                # Calcular probabilidades
                probabilities = []
                for neighbor in unvisited_neighbors:
                    edge = (current, neighbor) if (current, neighbor) in pheromone else (neighbor, current)
                    tau = pheromone[edge] ** alpha
                    eta = (1.0 / grafo[current][neighbor]['distancia']) ** beta
                    probabilities.append(tau * eta)

                total_pheromone = sum(probabilities)
                if total_pheromone == 0:
                    break

                probabilities = [p / total_pheromone for p in probabilities]
                next_node = random.choices(unvisited_neighbors, probabilities)[0]

                route.append(next_node)
                visited.add(next_node)
                current = next_node

            if route[-1] == destino:
                routes.append(route)

        for route in routes:
            try:
                cost = sum(grafo[route[i]][route[i + 1]]['distancia'] for i in range(len(route) - 1))
                if cost < best_cost:
                    best_cost = cost
                    best_route = route
            except KeyError as e:
                print(f"Error al acceder al enlace: {route}. Detalles: {e}")
                continue

        # Evaporación de feromonas
        for edge in pheromone:
            pheromone[edge] *= (1 - evaporation_rate)

        # Reforzar feromonas para las mejores rutas
        for route in routes:
            for i in range(len(route) - 1):
                try:
                    edge = (route[i], route[i + 1]) if (route[i], route[i + 1]) in pheromone else (route[i + 1], route[i])
                    pheromone[edge] += pheromone_deposit / best_cost
                except KeyError as e:
                    print(f"Error al actualizar feromonas: {route}. Detalles: {e}")
                    continue

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(best_route, grafo) if best_route else (float('inf'), 0)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': best_route,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [106]:
# Test de validacion Algoritmo ACO Básico. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_aco_basico(grafo, origen, destino)

nombre_algoritmo = 'ACO Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Básico
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.1879601 s
  Uso de CPU: 10.1 %
  Uso de memoria: 8520.95 MB
In [107]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo ACO Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [108]:
# Test de validacion Algoritmo ACO Básico. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_aco_basico(grafo, origen, destino)

nombre_algoritmo = 'ACO Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Básico
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.1945641 s
  Uso de CPU: 7.7 %
  Uso de memoria: 8502.62 MB
In [109]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo ACO Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo ACO optimizado

In [110]:
# Algoritmo ACO Optimizado

# Fase de inicializacion !
def inicializar_feromonas(grafo, valor_inicial=1.0):
    feromonas = {}
    for u, v in grafo.edges():
        feromonas[(u, v)] = valor_inicial
    return feromonas

# proceso para actualizar las feromonas!
def actualizar_feromonas(feromonas, rutas, evaporacion=0.5, Q=100):
    for k in feromonas:
        feromonas[k] *= (1 - evaporacion)
    for ruta in rutas:
        for i in range(len(ruta) - 1):
            u, v = ruta[i], ruta[i + 1]
            feromonas[(u, v)] += Q / len(ruta)
    return feromonas

# Funcion para seleccionar la ruta
def seleccionar_ruta(grafo, feromonas, origen, destino, alpha=1.0, beta=1.0):
    ruta = [origen]
    while ruta[-1] != destino:
        actual = ruta[-1]
        vecinos = list(grafo.neighbors(actual))
        if destino in vecinos:
            ruta.append(destino)
            break
        probabilidades = []
        for vecino in vecinos:
            if vecino not in ruta:
                tau = feromonas[(actual, vecino)] ** alpha
                eta = (1 / grafo[actual][vecino]['weight']) ** beta
                probabilidades.append((tau * eta, vecino))
        if not probabilidades:
            return None
        total_prob = sum(prob[0] for prob in probabilidades)
        probabilidades = [(prob[0] / total_prob, prob[1]) for prob in probabilidades]
        siguiente = random.choices([prob[1] for prob in probabilidades], [prob[0] for prob in probabilidades])[0]
        ruta.append(siguiente)
    return ruta


def calcula_ruta_aco_opt(grafo, origen, destino, num_ants=20, num_iterations=200, alpha=1.0, beta=1.0, evaporation_rate=0.5, pheromone_deposit=1.0):
    tiempo_inicio = time.time()

    # Inicializar feromonas
    pheromone = {edge: 1.0 for edge in grafo.edges}
    best_route = None
    best_cost = float('inf')

    for iteracion in range(num_iterations):
        routes = []
        for ant in range(num_ants):
            route = [origen]
            current = origen
            visited = set(route)

            while current != destino:
                neighbors = list(grafo.neighbors(current))
                unvisited_neighbors = [n for n in neighbors if n not in visited]  # Evitar nodos visitados

                if not unvisited_neighbors:
                    break

                # Calcular probabilidades
                probabilities = []
                for neighbor in unvisited_neighbors:
                    edge = (current, neighbor) if (current, neighbor) in pheromone else (neighbor, current)
                    tau = pheromone[edge] ** alpha
                    eta = (1.0 / grafo[current][neighbor]['distancia']) ** beta
                    probabilities.append(tau * eta)

                total_pheromone = sum(probabilities)
                if total_pheromone == 0:
                    break

                probabilities = [p / total_pheromone for p in probabilities]
                next_node = random.choices(unvisited_neighbors, probabilities)[0]

                route.append(next_node)
                visited.add(next_node)
                current = next_node

            if route[-1] == destino:
                routes.append(route)

        for route in routes:
            try:
                cost = sum(grafo[route[i]][route[i + 1]]['distancia'] for i in range(len(route) - 1))
                if cost < best_cost:
                    best_cost = cost
                    best_route = route
            except KeyError as e:
                print(f"Error al acceder al enlace: {route}. Detalles: {e}")
                continue

        # Evaporación de feromonas !!
        for edge in pheromone:
            pheromone[edge] *= (1 - evaporation_rate)

        # Reforzar feromonas para las mejores rutas !!
        for route in routes:
            for i in range(len(route) - 1):
                try:
                    edge = (route[i], route[i + 1]) if (route[i], route[i + 1]) in pheromone else (route[i + 1], route[i])
                    pheromone[edge] += pheromone_deposit / best_cost
                except KeyError as e:
                    print(f"Error al actualizar feromonas: {route}. Detalles: {e}")
                    continue

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(best_route, grafo) if best_route else (float('inf'), 0)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': best_route,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [111]:
# Test de validacion Algoritmo ACO Optimizado. ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_aco_opt(grafo, origen, destino)

nombre_algoritmo = 'ACO Optimizado'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Optimizado
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.1897562 s
  Uso de CPU: 8.3 %
  Uso de memoria: 8527.11 MB
In [112]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo ACO Optimizado
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Optimizado'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [113]:
# Test de validacion Algoritmo ACO Optimizado. ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_aco_opt(grafo, origen, destino)

nombre_algoritmo = 'ACO Optimizado'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Optimizado
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.071116 s
  Uso de CPU: 9.8 %
  Uso de memoria: 8513.77 MB
In [114]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo ACO Optimizado
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Optimizado'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo ACO Alternativo

In [115]:
# Algoritmo GA Alternativo

def calcula_ruta_aco_alt(grafo, origen, destino, num_ants=20, num_iterations=200, alpha=1.0, beta=1.0, evaporation_rate=0.5, pheromone_deposit=1.0):
    tiempo_inicio = time.time()

    # Inicializar feromonas
    pheromone = {edge: 1.0 for edge in grafo.edges}
    best_route = None
    best_cost = float('inf')

    for iteracion in range(num_iterations):
        routes = []
        for ant in range(num_ants):
            route = [origen]
            current = origen
            visited = set(route)

            while current != destino:
                neighbors = list(grafo.neighbors(current))
                unvisited_neighbors = [n for n in neighbors if n not in visited]  # Evitar nodos visitados

                if not unvisited_neighbors:
                    break

                # Calcular probabilidades
                probabilities = []
                for neighbor in unvisited_neighbors:
                    edge = (current, neighbor) if (current, neighbor) in pheromone else (neighbor, current)
                    tau = pheromone[edge] ** alpha
                    eta = (1.0 / grafo[current][neighbor]['distancia']) ** beta
                    probabilities.append(tau * eta)

                total_pheromone = sum(probabilities)
                if total_pheromone == 0:
                    break

                probabilities = [p / total_pheromone for p in probabilities]
                next_node = random.choices(unvisited_neighbors, probabilities)[0]

                route.append(next_node)
                visited.add(next_node)
                current = next_node

            if route[-1] == destino:
                routes.append(route)

        for route in routes:
            try:
                cost = sum(grafo[route[i]][route[i + 1]]['distancia'] for i in range(len(route) - 1))
                if cost < best_cost:
                    best_cost = cost
                    best_route = route
            except KeyError as e:
                print(f"Error al acceder al enlace: {route}. Detalles: {e}")
                continue

        # Evaporación de feromonas
        for edge in pheromone:
            pheromone[edge] *= (1 - evaporation_rate)

        # Reforzar feromonas para las mejores rutas
        for route in routes:
            for i in range(len(route) - 1):
                try:
                    edge = (route[i], route[i + 1]) if (route[i], route[i + 1]) in pheromone else (route[i + 1], route[i])
                    pheromone[edge] += pheromone_deposit / best_cost
                except KeyError as e:
                    print(f"Error al actualizar feromonas: {route}. Detalles: {e}")
                    continue

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(best_route, grafo) if best_route else (float('inf'), 0)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': best_route,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [116]:
# Test de validacion Algoritmo ACO Alternativo. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_aco_alt(grafo, origen, destino)

nombre_algoritmo = 'ACO Alternativo'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Alternativo
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.188988 s
  Uso de CPU: 8.6 %
  Uso de memoria: 8487.58 MB
In [117]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo ACO Alternativo
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Alternativo'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [118]:
# Test de validacion Algoritmo ACO Alternativo. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_aco_alt(grafo, origen, destino)

nombre_algoritmo = 'ACO Alternativo'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Alternativo
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0710599 s
  Uso de CPU: 8.2 %
  Uso de memoria: 8493.97 MB
In [119]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo ACO Alternativo
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Alternativo'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [120]:
# Algoritmo ACO Bidireccional

# A partir del algoritmo anterior: 
# Se añade refuerzo bidireccional de feromonas: asegura que las feromonas se refuercen en ambas direcciones ((u, v) y (v, u)). En las
# versiones anteriores del algoritmo, las feromonas solo
# Se introduce manejo de estancamiento e.g. si una hormiga no puede encontrar una ruta válida debido a la falta de vecinos no visitados,
# se imprime un mensaje y se pasa a la siguiente hormiga.

def inicializar_feromonas(grafo, valor_inicial=1.0):
    feromonas = {}
    for u, v in grafo.edges():
        feromonas[(u, v)] = valor_inicial
        feromonas[(v, u)] = valor_inicial
    return feromonas

def actualizar_feromonas(feromonas, rutas, evaporacion=0.5, Q=100):
    for k in feromonas:
        feromonas[k] *= (1 - evaporacion)
    for ruta in rutas:
        for i in range(len(ruta) - 1):
            u, v = ruta[i], ruta[i + 1]
            feromonas[(u, v)] += Q / len(ruta)
            feromonas[(v, u)] += Q / len(ruta)
    return feromonas

def seleccionar_ruta(grafo, feromonas, origen, destino, alpha=1.0, beta=1.0):
    ruta = [origen]
    while ruta[-1] != destino:
        actual = ruta[-1]
        vecinos = list(grafo.neighbors(actual))
        if destino in vecinos:
            ruta.append(destino)
            break
        probabilidades = []
        for vecino in vecinos:
            if vecino not in ruta:
                tau = feromonas[(actual, vecino)] ** alpha
                eta = (1 / grafo[actual][vecino]['distancia']) ** beta
                probabilidades.append((tau * eta, vecino))
        if not probabilidades:
            #print(f"Sin vecinos no visitados para el nodo: {actual}")
            
            return None
        total_prob = sum(prob[0] for prob in probabilidades)
        probabilidades = [(prob[0] / total_prob, prob[1]) for prob in probabilidades]
        siguiente = random.choices([prob[1] for prob in probabilidades], [prob[0] for prob in probabilidades])[0]
        ruta.append(siguiente)
    return ruta

def calcula_ruta_aco_bid(grafo, origen, destino, num_ants=5, num_iterations=100, alpha=1.0, beta=1.0, evaporation_rate=0.5, pheromone_deposit=1.0):
    tiempo_inicio = time.time()

    # Inicializar feromonas
    pheromone = inicializar_feromonas(grafo)
    best_route = None
    best_cost = float('inf')

    for iteracion in range(num_iterations):
        #print(f"Iteración ACO: {iteracion + 1}/{num_iterations}")
        routes = []
        for ant in range(num_ants):
            route = seleccionar_ruta(grafo, pheromone, origen, destino, alpha, beta)
            if route:
                routes.append(route)
            else:
                print(f"Hormiga {ant} no encontró una ruta válida.")
        
        for route in routes:
            cost = evaluar_ruta(route, grafo)[0]
            if cost < best_cost:
                best_cost = cost
                best_route = route

        # Evaporación de feromonas
        for edge in pheromone:
            pheromone[edge] *= (1 - evaporation_rate)

        # Reforzar feromonas para las mejores rutas
        for route in routes:
            for i in range(len(route) - 1):
                u, v = route[i], route[i + 1]
                pheromone[(u, v)] += pheromone_deposit / best_cost
                pheromone[(v, u)] += pheromone_deposit / best_cost

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(best_route, grafo) if best_route else (float('inf'), 0)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': best_route,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [121]:
# Test de validacion Algoritmo ACO Bidireccional. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_aco_bid(grafo, origen, destino)

nombre_algoritmo = 'ACO Bidireccional'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Algoritmo: ACO Bidireccional
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0428133 s
  Uso de CPU: 9.6 %
  Uso de memoria: 8511.78 MB
In [122]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo ACO Bidireccional
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Bidireccional'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [123]:
# Test de validacion Algoritmo ACO Bidireccional. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_aco_bid(grafo, origen, destino)

nombre_algoritmo = 'ACO Bidireccional'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.

Algoritmo: ACO Bidireccional
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0261192 s
  Uso de CPU: 19.7 %
  Uso de memoria: 8493.59 MB
In [124]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo ACO Bidireccional
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Bidireccional'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo ACO Final

In [125]:
# Algoritmo ACO (Ant Colony Optimization) FINAL

def inicializar_feromonas(grafo, valor_inicial=1.0):
    feromonas = {}
    for u, v in grafo.edges():
        feromonas[(u, v)] = valor_inicial
        feromonas[(v, u)] = valor_inicial  # las feromonas son bidireccionales !!!
    return feromonas

def actualizar_feromonas(feromonas, rutas, evaporacion=0.5, Q=100):
    for k in feromonas:
        feromonas[k] *= (1 - evaporacion)
    for ruta in rutas:
        _ , atenuacion_total, _, _ = evaluar_ruta(ruta, grafo)
        for i in range(len(ruta) - 1):
            u, v = ruta[i], ruta[i + 1]
            feromonas[(u, v)] += Q / atenuacion_total
            feromonas[(v, u)] += Q / atenuacion_total  # las feromonas son bidireccionales !!!
    return feromonas

def seleccionar_ruta(grafo, feromonas, origen, destino, alpha=1.0, beta=1.0):
    ruta = [origen]
    while ruta[-1] != destino:
        actual = ruta[-1]
        vecinos = list(grafo.neighbors(actual))
        if destino in vecinos:
            ruta.append(destino)
            break
        probabilidades = []
        for vecino in vecinos:
            if vecino not in ruta:
                tau = feromonas.get((actual, vecino), 1.0) ** alpha
                eta = (1 / grafo[actual][vecino]['distancia']) ** beta
                probabilidades.append((tau * eta, vecino))
        if not probabilidades:
            return None
        total_prob = sum(prob[0] for prob in probabilidades)
        probabilidades = [(prob[0] / total_prob, prob[1]) for prob in probabilidades]
        siguiente = random.choices([prob[1] for prob in probabilidades], [prob[0] for prob in probabilidades])[0]
        ruta.append(siguiente)
    return ruta


def calcula_ruta_aco_final(grafo, origen, destino, num_ants=3, num_iterations=50, alpha=1.0, beta=1.0, evaporation_rate=0.5, pheromone_deposit=1.0):
    tiempo_inicio = time.time()

    # Inicializar feromonas
    pheromone = inicializar_feromonas(grafo)
    best_route = None
    best_cost = float('inf')
    best_osnr = float('inf')

    for iteracion in range(num_iterations):
        routes = []
        for ant in range(num_ants):
            route = seleccionar_ruta(grafo, pheromone, origen, destino, alpha, beta)
            if route:
                routes.append(route)

        for route in routes:
            # Evaluar la mejor ruta final para obtener atenuación y OSNR
            distancia, atenuacion, osnr, retardo = evaluar_ruta(route, grafo)
            if atenuacion < best_cost:
                best_cost = atenuacion
                best_osnr = osnr
                best_route = route

        pheromone = actualizar_feromonas(pheromone, routes, evaporation_rate, pheromone_deposit)

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
            'ruta': best_route,
            'distancia': distancia,
            'atenuacion': atenuacion,
            'osnr': osnr,
            'retardo': retardo,
            'tiempo_ejecucion': tiempo_ejecucion,
            'uso_cpu': uso_cpu,
            'uso_memoria': uso_memoria
    }
In [126]:
# Test de validacion Algoritmo ACO Final. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_aco_final(grafo, origen, destino)

nombre_algoritmo = 'ACO Final'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Final
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.019944 s
  Uso de CPU: 12.8 %
  Uso de memoria: 8548.2 MB
In [127]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo ACO Final
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Final'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [128]:
# Test de validacion Algoritmo ACO Final. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_aco_final(grafo, origen, destino)

nombre_algoritmo = 'ACO Final'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: ACO Final
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0123751 s
  Uso de CPU: 11.1 %
  Uso de memoria: 8511.8 MB
In [129]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo ACO Final
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'ACO Final'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo BCO Básico

In [130]:
# Algoritmo BCO Básico

def calcula_ruta_bco_basico(grafo, origen, destino, num_abejas=4, num_iteraciones=50):
    tiempo_inicio = time.time()

    def generar_ruta():
        ruta = [origen]
        visitados = set([origen])
        while ruta[-1] != destino:
            vecinos = list(grafo.neighbors(ruta[-1]))
            vecinos_validos = [vecino for vecino in vecinos if vecino not in visitados]
            if not vecinos_validos:
                #print(f"Sin vecinos válidos para el nodo: {ruta[-1]}")
                break  # Si no hay vecinos válidos, terminar la ruta
            siguiente = random.choice(vecinos_validos)
            ruta.append(siguiente)
            visitados.add(siguiente)
        return ruta if ruta[-1] == destino else None

    mejor_ruta = None
    mejor_eval = (float('inf'), 0)
    
    for iteracion in range(num_iteraciones):
        #print(f"Iteración BCO: {iteracion}")
        abejas = [generar_ruta() for _ in range(num_abejas)]
        rutas_validas = [abeja for abeja in abejas if abeja is not None]
        
        if not rutas_validas:
            print(f"No se generaron rutas válidas en la iteración {iteracion}")
            continue
        
        #print(f"Rutas válidas en la iteración {iteracion}: {rutas_validas}")

        evaluaciones = [evaluar_ruta(abeja, grafo) for abeja in rutas_validas]
        #print(f"Evaluaciones en la iteración {iteracion}: {evaluaciones}")
        
        for i, evaluacion in enumerate(evaluaciones):
            if evaluacion[0] < mejor_eval[0]:
                mejor_eval = evaluacion
                mejor_ruta = rutas_validas[i]

        #print(f"Mejor ruta en la iteración {iteracion}: {mejor_ruta} con evaluación {mejor_eval}")

        # Actualizar las feromonas (simulado con un conteo simple)
        for ruta in rutas_validas:
            for i in range(len(ruta) - 1):
                u, v = ruta[i], ruta[i + 1]
                grafo[u][v]['pheromone'] = grafo[u][v].get('pheromone', 0) + 1

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    if mejor_ruta:
        mejor_ruta_eval = evaluar_ruta(mejor_ruta, grafo)
        #print(f"Mejor ruta encontrada: {mejor_ruta} con evaluación {mejor_ruta_eval}")
    else:
        print("No se encontró ninguna ruta válida.")
        mejor_ruta_eval = (float('inf'), 0)
    
    return {
        'ruta': [int(nodo) for nodo in mejor_ruta] if mejor_ruta else [],
        'distancia': mejor_ruta_eval[0],
        'atenuacion': mejor_ruta_eval[1],
        'osnr': mejor_ruta_eval[2],
        'retardo': mejor_ruta_eval[3],
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
    
In [131]:
# Test de validacion Algoritmo BCO Básico. ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_bco_basico(grafo, origen, destino)

nombre_algoritmo = 'BCO Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
No se generaron rutas válidas en la iteración 17
No se generaron rutas válidas en la iteración 26
No se generaron rutas válidas en la iteración 32
No se generaron rutas válidas en la iteración 39
No se generaron rutas válidas en la iteración 41
No se generaron rutas válidas en la iteración 44
No se generaron rutas válidas en la iteración 49

Algoritmo: BCO Básico
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.009877 s
  Uso de CPU: 9.9 %
  Uso de memoria: 8530.66 MB
In [132]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo BCO Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'BCO Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [133]:
# Test de validacion Algoritmo BCO Básico. ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_bco_basico(grafo, origen, destino)

nombre_algoritmo = 'BCO Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: BCO Básico
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0097249 s
  Uso de CPU: 7.6 %
  Uso de memoria: 8518.09 MB
In [134]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo BCO Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'BCO Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Algoritmo PSO Inicial

In [135]:
# Algoritmo PSO Inicial
# Es el algoritmo GA básico, con unos hiperparámetros iniciales para ver su rendimiento !

# Función para generar una ruta válida
def generar_ruta_valida(grafo, origen, destino):
    ruta = [origen]
    visitados = set([origen])
    while ruta[-1] != destino:
        vecinos = list(grafo.neighbors(ruta[-1]))
        vecinos_validos = [vecino for vecino in vecinos if vecino not in visitados]
        if not vecinos_validos:
            break  # Si no hay vecinos válidos, terminar la ruta
        siguiente = random.choice(vecinos_validos)
        ruta.append(siguiente)
        visitados.add(siguiente)
    return ruta if ruta[-1] == destino else None

# Función principal del PSO
def calcula_ruta_pso_inicial(grafo, origen, destino, num_particulas=4, num_iteraciones=50, w=0.5, c1=2, c2=2):
    tiempo_inicio = time.time()

    particulas = [generar_ruta_valida(grafo, origen, destino) for _ in range(num_particulas)]
    particulas = [p for p in particulas if p is not None]  # Eliminar rutas no válidas

    if not particulas:
        raise ValueError("No se pudieron generar rutas válidas para las partículas iniciales.")

    #print(f"Partículas iniciales: {particulas}")

    velocidades = []
    for particula in particulas:
        if len(particula) > 2:
            velocidades.append([random.choice(list(grafo.neighbors(nodo))) for nodo in particula[1:-1]])
        else:
            velocidades.append([])

    mejor_local = particulas[:]
    mejor_global = min(particulas, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])

    for iteracion in range(num_iteraciones):
        nuevas_particulas = []
        for i in range(len(particulas)):
            nueva_ruta = particulas[i][:]  # Copia de la ruta actual
            if len(nueva_ruta) > 2:
                for j in range(1, len(nueva_ruta) - 1):
                    if random.random() < w:  # Probabilidad de seguir la mejor ruta local o global
                        if random.random() < 0.5 and j < len(mejor_local[i]):
                            nueva_ruta[j] = mejor_local[i][j]
                        elif j < len(mejor_global):
                            nueva_ruta[j] = mejor_global[j]
            nuevas_particulas.append(nueva_ruta)

        particulas = nuevas_particulas[:]
        for i in range(len(particulas)):
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_local[i], grafo)[0]:
                mejor_local[i] = particulas[i][:]
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_global, grafo)[0]:
                mejor_global = particulas[i][:]
        
        #print(f"Iteración PSO: {iteracion+1}/{num_iteraciones}")
        #print(f"Mejor ruta global hasta ahora: {mejor_global} con evaluación {evaluar_ruta(mejor_global, grafo)}")

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener métricas: distancia, atenuación, OSNR y retardo
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_global, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
        'ruta': mejor_global,
        'distancia': distancia,
        'atenuacion': atenuacion,
        'osnr': osnr,
        'retardo': retardo,
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }

Se deja el ejemplo anterior como muestra de una mala elección de ruta (con los parametros por defecto) !

In [136]:
# Test de validacion Algoritmo PSO Inicial. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_pso_inicial(grafo, origen, destino)

nombre_algoritmo = 'PSO Inicial'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Inicial
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.0071719 s
  Uso de CPU: 9.7 %
  Uso de memoria: 8478.09 MB
In [137]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo PSO Inicial
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Inicial'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [138]:
# Test de validacion Algoritmo PSO Inicial. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_pso_inicial(grafo, origen, destino)

nombre_algoritmo = 'PSO Inicial'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Inicial
  Ruta: [8, 3, 1, 2, 5, 7]
  Distancia: 450.0 km
  Atenuación: 24.1 dB
  OSNR: 3.8 dB
  Latencia e2e: 3.2 ms
  Tiempo de cálculo: 0.0080569 s
  Uso de CPU: 15.3 %
  Uso de memoria: 8483.16 MB
In [139]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo PSO Inicial
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Inicial'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [140]:
# Algoritmo PSO Básico
# Mismo algoritmo pero cambio parámetros inicialización para mejorar el resultado (ruta mas optima que la anterior)

# Selección de nuevos hiperparametros, a partir de los valores basicos definidos en la celda anterior:

# Número de partículas (num_particulas): 10, 20, 50.
# Número de iteraciones (num_iteraciones): 100, 200, 500
# Coeficiente de inercia (w) : (0.1,.., 0.9).
# Coeficientes cognitivos (c1) y sociales (c2): 1.5, 2.0, 2.5. Por tanto, probaré (1.5, 1.5), (1.5, 2.0), (2.0, 2.0), (2.5, 2.5).



# Función para generar una ruta válida
def generar_ruta_valida(grafo, origen, destino):
    ruta = [origen]
    visitados = set([origen])
    while ruta[-1] != destino:
        vecinos = list(grafo.neighbors(ruta[-1]))
        vecinos_validos = [vecino for vecino in vecinos if vecino not in visitados]
        if not vecinos_validos:
            break  # Si no hay vecinos válidos, terminar la ruta
        siguiente = random.choice(vecinos_validos)
        ruta.append(siguiente)
        visitados.add(siguiente)
    return ruta if ruta[-1] == destino else None

# Función principal del PSO
def calcula_ruta_pso_basico(grafo, origen, destino, num_particulas=10, num_iteraciones=50, w=0.5, c1=2, c2=2):
    tiempo_inicio = time.time()

    particulas = [generar_ruta_valida(grafo, origen, destino) for _ in range(num_particulas)]
    particulas = [p for p in particulas if p is not None]  # Eliminar rutas no válidas

    if not particulas:
        raise ValueError("No se pudieron generar rutas válidas para las partículas iniciales.")

    #print(f"Partículas iniciales: {particulas}")

    velocidades = []
    for particula in particulas:
        if len(particula) > 2:
            velocidades.append([random.choice(list(grafo.neighbors(nodo))) for nodo in particula[1:-1]])
        else:
            velocidades.append([])

    mejor_local = particulas[:]
    mejor_global = min(particulas, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])

    for iteracion in range(num_iteraciones):
        nuevas_particulas = []
        for i in range(len(particulas)):
            nueva_ruta = particulas[i][:]  # Copia de la ruta actual
            if len(nueva_ruta) > 2:
                for j in range(1, len(nueva_ruta) - 1):
                    if random.random() < w:  # Probabilidad de seguir la mejor ruta local o global
                        if random.random() < 0.5 and j < len(mejor_local[i]):
                            nueva_ruta[j] = mejor_local[i][j]
                        elif j < len(mejor_global):
                            nueva_ruta[j] = mejor_global[j]
            nuevas_particulas.append(nueva_ruta)

        particulas = nuevas_particulas[:]
        for i in range(len(particulas)):
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_local[i], grafo)[0]:
                mejor_local[i] = particulas[i][:]
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_global, grafo)[0]:
                mejor_global = particulas[i][:]
        
        #print(f"Iteración PSO: {iteracion+1}/{num_iteraciones}")
        #print(f"Mejor ruta global hasta ahora: {mejor_global} con evaluación {evaluar_ruta(mejor_global, grafo)}")

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_global, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
        'ruta': mejor_global,
        'distancia': distancia,
        'atenuacion': atenuacion,
        'osnr': osnr,
        'retardo': retardo,
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [141]:
# Test de validacion Algoritmo PSO Básico. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_pso_inicial(grafo, origen, destino)

nombre_algoritmo = 'PSO Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Básico
  Ruta: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23]
  Distancia: 770.0 km
  Atenuación: 41.1 dB
  OSNR: 1 dB
  Latencia e2e: 5.9 ms
  Tiempo de cálculo: 0.011971 s
  Uso de CPU: 19.0 %
  Uso de memoria: 8523.92 MB
In [142]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo PSO Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [143]:
# Test de validacion Algoritmo PSO Básico. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_pso_inicial(grafo, origen, destino)

nombre_algoritmo = 'PSO Básico'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Básico
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.017693 s
  Uso de CPU: 8.5 %
  Uso de memoria: 8532.73 MB
In [144]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo PSO Básico
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Básico'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Ha mejorado la ruta respecto de la ejecución inicial ya que encuentra la ruta óptima.

In [145]:
# Algoritmo PSO Básico
# Mismo algoritmo pero cambio parámetros inicialización para mejorar el resultado (ruta mas optima que la anterior)

# Selección de nuevos hiperparametros, a partir de los valores basicos definidos en la celda anterior:

# Número de partículas (num_particulas): 10, 20, 50.
# Número de iteraciones (num_iteraciones): 100, 200, 500
# Coeficiente de inercia (w) : (0.1,.., 0.9).
# Coeficientes cognitivos (c1) y sociales (c2): 1.5, 2.0, 2.5. Por tanto, probaré (1.5, 1.5), (1.5, 2.0), (2.0, 2.0), (2.5, 2.5).



# Función para generar una ruta válida
def generar_ruta_valida(grafo, origen, destino):
    ruta = [origen]
    visitados = set([origen])
    while ruta[-1] != destino:
        vecinos = list(grafo.neighbors(ruta[-1]))
        vecinos_validos = [vecino for vecino in vecinos if vecino not in visitados]
        if not vecinos_validos:
            break  # Si no hay vecinos válidos, terminar la ruta
        siguiente = random.choice(vecinos_validos)
        ruta.append(siguiente)
        visitados.add(siguiente)
    return ruta if ruta[-1] == destino else None

# Función principal del PSO
def calcula_ruta_pso_basico2(grafo, origen, destino, num_particulas=10, num_iteraciones=100, w=0.5, c1=2, c2=2):
    tiempo_inicio = time.time()

    particulas = [generar_ruta_valida(grafo, origen, destino) for _ in range(num_particulas)]
    particulas = [p for p in particulas if p is not None]  # Eliminar rutas no válidas

    if not particulas:
        raise ValueError("No se pudieron generar rutas válidas para las partículas iniciales.")

    #print(f"Partículas iniciales: {particulas}")

    velocidades = []
    for particula in particulas:
        if len(particula) > 2:
            velocidades.append([random.choice(list(grafo.neighbors(nodo))) for nodo in particula[1:-1]])
        else:
            velocidades.append([])

    mejor_local = particulas[:]
    mejor_global = min(particulas, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])

    for iteracion in range(num_iteraciones):
        nuevas_particulas = []
        for i in range(len(particulas)):
            nueva_ruta = particulas[i][:]  # Copia de la ruta actual
            if len(nueva_ruta) > 2:
                for j in range(1, len(nueva_ruta) - 1):
                    if random.random() < w:  # Probabilidad de seguir la mejor ruta local o global
                        if random.random() < 0.5 and j < len(mejor_local[i]):
                            nueva_ruta[j] = mejor_local[i][j]
                        elif j < len(mejor_global):
                            nueva_ruta[j] = mejor_global[j]
            nuevas_particulas.append(nueva_ruta)

        particulas = nuevas_particulas[:]
        for i in range(len(particulas)):
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_local[i], grafo)[0]:
                mejor_local[i] = particulas[i][:]
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_global, grafo)[0]:
                mejor_global = particulas[i][:]
        
        #print(f"Iteración PSO: {iteracion+1}/{num_iteraciones}")
        #print(f"Mejor ruta global hasta ahora: {mejor_global} con evaluación {evaluar_ruta(mejor_global, grafo)}")

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_global, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
        'ruta': mejor_global,
        'distancia': distancia,
        'atenuacion': atenuacion,
        'osnr': osnr,
        'retardo': retardo,
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [146]:
# Test de validacion Algoritmo PSO Básico 2. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_pso_basico2(grafo, origen, destino)

nombre_algoritmo = 'PSO Básico 2'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Básico 2
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0264802 s
  Uso de CPU: 12.7 %
  Uso de memoria: 8529.2 MB
In [147]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo PSO Básico 2
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Básico 2'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [148]:
# Test de validacion Algoritmo PSO Básico 2. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_pso_basico2(grafo, origen, destino)

nombre_algoritmo = 'PSO Básico 2'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Básico 2
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0480599 s
  Uso de CPU: 8.1 %
  Uso de memoria: 8515.0 MB
In [149]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo PSO Básico 2
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Básico 2'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Consigue la misma ruta, que es la más óptima.

In [150]:
# Algoritmo PSO Básico 3
# Mismo algoritmo pero cambio parámetros inicialización para mejorar el resultado (ruta mas optima que la anterior)

# Selección de nuevos hiperparametros, a partir de los valores basicos definidos en la celda anterior:

# Número de partículas (num_particulas): 10, 20, 50.
# Número de iteraciones (num_iteraciones): 100, 200, 500
# Coeficiente de inercia (w) : (0.1,.., 0.9).
# Coeficientes cognitivos (c1) y sociales (c2): 1.5, 2.0, 2.5. Por tanto, probaré (1.5, 1.5), (1.5, 2.0), (2.0, 2.0), (2.5, 2.5).



# Función para generar una ruta válida
def generar_ruta_valida(grafo, origen, destino):
    ruta = [origen]
    visitados = set([origen])
    while ruta[-1] != destino:
        vecinos = list(grafo.neighbors(ruta[-1]))
        vecinos_validos = [vecino for vecino in vecinos if vecino not in visitados]
        if not vecinos_validos:
            break  # Si no hay vecinos válidos, terminar la ruta
        siguiente = random.choice(vecinos_validos)
        ruta.append(siguiente)
        visitados.add(siguiente)
    return ruta if ruta[-1] == destino else None

# Función principal del PSO
def calcula_ruta_pso_basico3(grafo, origen, destino, num_particulas=15, num_iteraciones=100, w=0.6, c1=2, c2=2):
    tiempo_inicio = time.time()

    particulas = [generar_ruta_valida(grafo, origen, destino) for _ in range(num_particulas)]
    particulas = [p for p in particulas if p is not None]  # Eliminar rutas no válidas

    if not particulas:
        raise ValueError("No se pudieron generar rutas válidas para las partículas iniciales.")

    #print(f"Partículas iniciales: {particulas}")

    velocidades = []
    for particula in particulas:
        if len(particula) > 2:
            velocidades.append([random.choice(list(grafo.neighbors(nodo))) for nodo in particula[1:-1]])
        else:
            velocidades.append([])

    mejor_local = particulas[:]
    mejor_global = min(particulas, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])

    for iteracion in range(num_iteraciones):
        nuevas_particulas = []
        for i in range(len(particulas)):
            nueva_ruta = particulas[i][:]  # Copia de la ruta actual
            if len(nueva_ruta) > 2:
                for j in range(1, len(nueva_ruta) - 1):
                    if random.random() < w:  # Probabilidad de seguir la mejor ruta local o global
                        if random.random() < 0.5 and j < len(mejor_local[i]):
                            nueva_ruta[j] = mejor_local[i][j]
                        elif j < len(mejor_global):
                            nueva_ruta[j] = mejor_global[j]
            nuevas_particulas.append(nueva_ruta)

        particulas = nuevas_particulas[:]
        for i in range(len(particulas)):
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_local[i], grafo)[0]:
                mejor_local[i] = particulas[i][:]
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_global, grafo)[0]:
                mejor_global = particulas[i][:]
        
        #print(f"Iteración PSO: {iteracion+1}/{num_iteraciones}")
        #print(f"Mejor ruta global hasta ahora: {mejor_global} con evaluación {evaluar_ruta(mejor_global, grafo)}")

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_global, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
        'ruta': mejor_global,
        'distancia': distancia,
        'atenuacion': atenuacion,
        'osnr': osnr,
        'retardo': retardo,
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [151]:
# Test de validacion Algoritmo PSO Básico 3. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_pso_basico3(grafo, origen, destino)

nombre_algoritmo = 'PSO Básico 3'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Básico 3
  Ruta: [8, 6, 7, 9, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 820.0 km
  Atenuación: 43.8 dB
  OSNR: 1 dB
  Latencia e2e: 6.1 ms
  Tiempo de cálculo: 0.0615642 s
  Uso de CPU: 11.0 %
  Uso de memoria: 8480.75 MB
In [152]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo PSO Básico 3
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Básico 3'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [153]:
# Test de validacion Algoritmo PSO Básico 3. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_pso_basico3(grafo, origen, destino)

nombre_algoritmo = 'PSO Básico 3'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Básico 3
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0536578 s
  Uso de CPU: 7.9 %
  Uso de memoria: 8478.05 MB
In [154]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo PSO Básico 3
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Básico 3'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Ha empeorado el calculo de la ruta al cambiar los hiperparametros:

  • de 10 a 15 particulas
  • w de 0.5 a 0.6

De hecho PSO es capaz de obtener una ruta buena suboptima Ruta: [8, 10, 9, 11, 13, 19, 23], Distancia: 600.0 km, Atenuación: 32.0 dB ya que la ruta óptima para esta dupla (8, 23) es: Ruta: [8, 10, 14, 15, 18, 22, 25, 23], Distancia: 450.0 km, Atenuación: 24.3 dB, OSNR: 13.6 dB.

In [155]:
# Algoritmo PSO Optimizado

# Se ha incluido parada temprana pero hay que teenr cuidado ya que puede parar en un minimo local
# Se modifica la generación inicial de partículas, despues del resultado obtenido con la versión básica del aglgoritmo

def calcula_ruta_pso_opt(grafo, origen, destino, num_particulas=20, num_iteraciones=100, w=0.7, c1=2, c2=2, iteraciones_sin_mejora=10):
    tiempo_inicio = time.time()

    particulas = [generar_ruta_valida(grafo, origen, destino) for _ in range(num_particulas)]
    particulas = [p for p in particulas if p is not None]  # Eliminar rutas no válidas

    if not particulas:
        raise ValueError("No se pudieron generar rutas válidas para las partículas iniciales.")

    #print(f"Partículas iniciales: {particulas}")

    velocidades = []
    for particula in particulas:
        if len(particula) > 2:
            velocidades.append([random.choice(list(grafo.neighbors(nodo))) for nodo in particula[1:-1]])
        else:
            velocidades.append([])

    mejor_local = particulas[:]
    mejor_global = min(particulas, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
    mejor_eval_global = evaluar_ruta(mejor_global, grafo)[0]

    iteraciones_sin_mejora_actual = 0

    for iteracion in range(num_iteraciones):
        nuevas_particulas = []
        for i in range(len(particulas)):
            nueva_ruta = particulas[i][:]  # Copia de la ruta actual !!!
            if len(nueva_ruta) > 2:
                for j in range(1, len(nueva_ruta) - 1):
                    if random.random() < w:  # Probabilidad de seguir la mejor ruta local o global !!!
                        if random.random() < 0.5 and j < len(mejor_local[i]):
                            nueva_ruta[j] = mejor_local[i][j]
                        elif j < len(mejor_global):
                            nueva_ruta[j] = mejor_global[j]
            nuevas_particulas.append(nueva_ruta)

        particulas = nuevas_particulas[:]
        for i in range(len(particulas)):
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_local[i], grafo)[0]:
                mejor_local[i] = particulas[i][:]
            if evaluar_ruta(particulas[i], grafo)[0] < mejor_eval_global:
                mejor_global = particulas[i][:]
                mejor_eval_global = evaluar_ruta(mejor_global, grafo)[0]
                iteraciones_sin_mejora_actual = 0  # Resetear el contador de iteraciones sin mejora !!!
            else:
                iteraciones_sin_mejora_actual += 1

        # print(f"Iteración PSO: {iteracion+1}/{num_iteraciones}")
        # print(f"Mejor ruta global hasta ahora: {mejor_global} con evaluación {evaluar_ruta(mejor_global, grafo)}")

        # Criterio de parada temprana; Ok con las pruebas internas realizadas pero
        # hay que prestar atención al problema de posibles mínimos locales.
        # En caso de duda, levantar los comentarios para poder seguir la evolución del algoritmo !!!
        if iteraciones_sin_mejora_actual >= iteraciones_sin_mejora:
            
            #print(f"Parada temprana en la iteración {iteracion+1} debido a {iteraciones_sin_mejora} iteraciones sin mejora.")
            break

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_global, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
        'ruta': mejor_global,
        'distancia': distancia,
        'atenuacion': atenuacion,
        'osnr': osnr,
        'retardo': retardo,
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [156]:
# Test de validacion Algoritmo PSO Optimizado. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_pso_opt(grafo, origen, destino)

nombre_algoritmo = 'PSO Optimizado'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Optimizado
  Ruta: [8, 10, 14, 12, 13, 19, 23]
  Distancia: 650.0 km
  Atenuación: 34.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.4 ms
  Tiempo de cálculo: 0.0027289 s
  Uso de CPU: 11.1 %
  Uso de memoria: 8480.89 MB
In [157]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo PSO Optimizado
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Optimizado'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [158]:
# Test de validacion Algoritmo PSO Optimizado. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_pso_opt(grafo, origen, destino)

nombre_algoritmo = 'PSO Optimizado'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Algoritmo: PSO Optimizado
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0008037 s
  Uso de CPU: 11.6 %
  Uso de memoria: 8458.55 MB
In [159]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo PSO Optimizado
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Optimizado'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Efectivamente, se demuestra que PSO Optimizado no encuentra la ruta óptima a pesar de haber incrementado el número inicial de partículas de 15 a 20. Este incremento del número de partículas permite explorar más el espacio de soluciones. Sin embargo, la ruta es menos óptima que en el caso anterior.

Nótese que el resultado depende mucho de la inicialización del algoritmo. A modo de ejemplo, se puede citar que en la iteración anterior del algoritmo, con los mismos hiperparámetro, si se ha obtenido la ruta más óptima.

Algoritmo PSO Plus

In [160]:
# Algoritmo PSO Plus

# Generar ruta válida
def generar_ruta_valida(grafo, origen, destino):
    ruta = [origen]
    visitados = set([origen])
    while ruta[-1] != destino:
        vecinos = list(grafo.neighbors(ruta[-1]))
        vecinos_validos = [vecino for vecino in vecinos if vecino not in visitados]
        if not vecinos_validos:
            print(f"Estancamiento en nodo {ruta[-1]}, sin vecinos válidos.")
            break  # Importante: si no hay vecinos válidos, terminar la ruta !!!
        siguiente = random.choice(vecinos_validos)
        ruta.append(siguiente)
        visitados.add(siguiente)
    if ruta[-1] != destino:
        print(f"No se pudo completar la ruta desde {origen} hasta {destino}. Ruta actual: {ruta}")
    return ruta if ruta[-1] == destino else None

# Algoritmo PSO con lógica revisada para evitar estancamiento prematuro (prestar atención a resultados con rutas subóptimas)
def calcula_ruta_pso_plus(grafo, origen, destino, num_particulas=10, num_iteraciones=100, w=0.5, c1=2, c2=2, iteraciones_sin_mejora=10):
    tiempo_inicio = time.time()

    # Verificar la conectividad del grafo
    if not nx.has_path(grafo, origen, destino):
        raise ValueError("No existe una ruta entre el origen y el destino en el grafo.")

    particulas = [generar_ruta_valida(grafo, origen, destino) for _ in range(num_particulas)]
    particulas = [p for p in particulas if p is not None]  # Importante: eliminar rutas no válidas !!!

    if not particulas:
        raise ValueError("No se pudieron generar rutas válidas para las partículas iniciales.")

    print(f"Partículas iniciales: {particulas}")

    velocidades = []
    for particula in particulas:
        if len(particula) > 2:
            velocidades.append([random.choice(list(grafo.neighbors(nodo))) for nodo in particula[1:-1]])
        else:
            velocidades.append([])

    mejor_local = particulas[:]
    mejor_global = min(particulas, key=lambda ruta: evaluar_ruta(ruta, grafo)[0])
    mejor_eval_global = evaluar_ruta(mejor_global, grafo)[0]

    iteraciones_sin_mejora_actual = 0

    for iteracion in range(num_iteraciones):
        nuevas_particulas = []
        for i in range(len(particulas)):
            nueva_ruta = particulas[i][:]  # Copia de la ruta actual
            if len(nueva_ruta) > 2:
                for j in range(1, len(nueva_ruta) - 1):
                    if random.random() < w:  # Probabilidad de seguir la mejor ruta local o global
                        if random.random() < 0.5 and j < len(mejor_local[i]):
                            nueva_ruta[j] = mejor_local[i][j]
                        elif j < len(mejor_global):
                            nueva_ruta[j] = mejor_global[j]
            nuevas_particulas.append(nueva_ruta)

        particulas = nuevas_particulas[:]
        for i in range(len(particulas)):
            if evaluar_ruta(particulas[i], grafo)[0] < evaluar_ruta(mejor_local[i], grafo)[0]:
                mejor_local[i] = particulas[i][:]
            if evaluar_ruta(particulas[i], grafo)[0] < mejor_eval_global:
                mejor_global = particulas[i][:]
                mejor_eval_global = evaluar_ruta(mejor_global, grafo)[0]
                iteraciones_sin_mejora_actual = 0  # Resetear el contador de iteraciones sin mejora
            else:
                iteraciones_sin_mejora_actual += 1

        #print(f"Iteración PSO: {iteracion+1}/{num_iteraciones}")
        #print(f"Mejor ruta global hasta ahora: {mejor_global} con evaluación {evaluar_ruta(mejor_global, grafo)}")

        # Criterio de parada temprana solo si hubo suficiente exploración
        if iteracion > iteraciones_sin_mejora and iteraciones_sin_mejora_actual >= iteraciones_sin_mejora:
            print(f"Parada temprana en la iteración {iteracion+1} debido a {iteraciones_sin_mejora} iteraciones sin mejora.")
            break

    tiempo_final = time.time()
    tiempo_ejecucion = round(tiempo_final - tiempo_inicio, 7)

    # Evaluar la mejor ruta final para obtener atenuación y OSNR
    distancia, atenuacion, osnr, retardo = evaluar_ruta(mejor_global, grafo)

    # Obtener el uso de CPU y memoria
    uso_cpu = round(psutil.cpu_percent(interval=1), 2)
    uso_memoria = round(psutil.virtual_memory().used / (1024 ** 2), 2)  # Convertir a MB

    return {
        'ruta': mejor_global,
        'distancia': distancia,
        'atenuacion': atenuacion,
        'osnr': osnr,
        'retardo': retardo,
        'tiempo_ejecucion': tiempo_ejecucion,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [161]:
# Test de validacion Algoritmo PSO Plus. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultado = calcula_ruta_pso_plus(grafo, origen, destino)

nombre_algoritmo = 'PSO Plus'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 1, 2, 5, 7, 6]
Partículas iniciales: [[8, 4, 3, 1, 2, 5, 7, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23], [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Parada temprana en la iteración 12 debido a 10 iteraciones sin mejora.

Algoritmo: PSO Plus
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0037022 s
  Uso de CPU: 9.5 %
  Uso de memoria: 8494.33 MB
In [162]:
# Visualiza la ruta encontrada [8] [23]. Algoritmo PSO Plus
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Plus'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")
In [163]:
# Test de validacion Algoritmo PSO Plus. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultado = calcula_ruta_pso_plus(grafo, origen, destino)

nombre_algoritmo = 'PSO Plus'
imprimir_resultado_rutas_simples(resultado, nombre_algoritmo)
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 9, 11, 13, 19, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Partículas iniciales: [[8, 3, 1, 2, 5, 7], [8, 4, 3, 1, 2, 5, 7], [8, 4, 3, 1, 2, 5, 7], [8, 6, 7], [8, 6, 7], [8, 3, 1, 2, 5, 7]]
Parada temprana en la iteración 12 debido a 10 iteraciones sin mejora.

Algoritmo: PSO Plus
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0072391 s
  Uso de CPU: 8.3 %
  Uso de memoria: 8487.72 MB
In [164]:
# Visualiza la ruta encontrada [8] [7]. Algoritmo PSO Plus
if resultado:
    ruta = resultado['ruta']
    nombre_algoritmo = 'PSO Plus'
    dibujar_ruta(grafo, ruta, nombre_algoritmo)
else:
    print("No se encontró una ruta.")

Es muy interesante el resultado. El algoritmo para automáticamente al detectar estancamiento i.e. no hay mejora de la solución. Adicionalmente, se comprueba que este resultado es peor que el anterior.

In [165]:
# Codigo interno de control

if not nx.has_path(grafo, origen, destino):
    raise ValueError("No existe una ruta entre el origen y el destino en el grafo.")
In [166]:
# Codigo de control interno para evaluar el estado del grafo
for edge in grafo_red.edges(data=True):
    print(edge)
(1, 3, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 97})
(1, 2, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 97})
(4, 3, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8, 'pheromone': 59})
(4, 8, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8, 'pheromone': 59})
(2, 5, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 97})
(3, 8, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8, 'pheromone': 38})
(5, 7, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6, 'pheromone': 97})
(7, 6, {'distancia': 70.0, 'atenuacion': 3.7, 'osnr': 7.8, 'pheromone': 62})
(7, 9, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6, 'pheromone': 50})
(8, 6, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1, 'pheromone': 62})
(8, 10, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6, 'pheromone': 61})
(10, 9, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1, 'pheromone': 43})
(10, 14, {'distancia': 100.0, 'atenuacion': 5.4, 'osnr': 13.6, 'pheromone': 48})
(9, 11, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 41})
(11, 13, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 41})
(12, 13, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 31})
(12, 14, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1, 'pheromone': 31})
(13, 17, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 24})
(13, 19, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8, 'pheromone': 26})
(19, 23, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 26})
(20, 16, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 15})
(20, 30, {'distancia': 200.0, 'atenuacion': 10.6, 'osnr': 3.8, 'pheromone': 15})
(14, 15, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 29})
(15, 18, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 29})
(21, 24, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 24})
(21, 17, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 24})
(22, 25, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 14})
(22, 18, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 14})
(23, 25, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 29})
(23, 26, {'distancia': 150.0, 'atenuacion': 7.9, 'osnr': 1, 'pheromone': 24})
(24, 26, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 24})
(25, 27, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 15})
(16, 18, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 15})
(28, 29, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 15})
(28, 27, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 15})
(30, 29, {'distancia': 50.0, 'atenuacion': 2.7, 'osnr': 13.8, 'pheromone': 15})
In [ ]:
 

Algoritmos de encaminamiento para Rutas Protegidas (Rutas Disjuntas 1+1)

In [ ]:
 

Funciones Auxiliares

In [167]:
# Funcion para imprimir resultados solo en los casos de rutas disjuntas
# Adaptacion de la versión anterior de la funcion para incluir retardo_e2e / latencia

def mostrar_resultados_rutas_disjuntas(resultados):
    print("Ruta Primaria:")
    primaria = resultados['ruta_primaria']
    print(f"  Ruta: {primaria['ruta']}")
    print(f"  Distancia: {primaria['distancia']} km")
    print(f"  Atenuación: {primaria['atenuacion']} dB")
    print(f"  OSNR: {primaria['osnr']} dB")
    print(f"  Latencia e2e: {primaria['retardo']} ms")
    print(f"  Tiempo de cálculo: {primaria['tiempo_ejecucion']} s")
    print(f"  Uso de CPU: {primaria['uso_cpu']} %")
    print(f"  Uso de memoria: {primaria['uso_memoria']} MB")

    print("Ruta Secundaria:")
    secundaria = resultados['ruta_secundaria']
    if secundaria is not None:
        print(f"  Ruta: {secundaria['ruta']}")
        print(f"  Distancia: {secundaria['distancia']} km")
        print(f"  Atenuación: {secundaria['atenuacion']} dB")
        print(f"  OSNR: {secundaria['osnr']} dB")
        print(f"  Latencia e2e: {secundaria['retardo']} ms")
        print(f"  Tiempo de cálculo: {secundaria['tiempo_ejecucion']} s")
        print(f"  Uso de CPU: {secundaria['uso_cpu']} %")
        print(f"  Uso de memoria: {secundaria['uso_memoria']} MB")
    else:
        print("  No se pudo calcular la ruta secundaria")
In [168]:
# Función V1.0 que modifica el grafo de entrada, eliminando los nodos de la ruta primaria excepto origen y destino
# De esta forma la ruta disjunta se puede calcular sobre este grafo modificado
# Nótese que es un grafo virtual i.e. una topología de red virtual y esto permite aplicaciones muy interesantes
#def modificar_grafo(grafo, ruta_primaria, origen, destino):
#    grafo_modificado = grafo.copy()
#    for nodo in ruta_primaria:
#        if nodo != origen and nodo != destino:
#            if nodo in grafo_modificado:
#                grafo_modificado.remove_node(nodo)
#    return grafo_modificado

# V2.0 Version mejorada de la funcion anterior
# Tiene en cuenta las rutas directas
def modificar_grafo(grafo, ruta_primaria, origen, destino):
    # Crea una copia del grafo original
    grafo_modificado = grafo.copy()
    
    # Si la ruta primaria es directa entre origen y destino, eliminar el enlace directo
    if len(ruta_primaria) == 2 and ruta_primaria[0] == origen and ruta_primaria[1] == destino:
        if grafo_modificado.has_edge(origen, destino):
            grafo_modificado.remove_edge(origen, destino)
    else:
        # Eliminar los nodos de la ruta primaria excepto el origen y destino
        for nodo in ruta_primaria:
            if nodo != origen and nodo != destino:
                grafo_modificado.remove_node(nodo)
                
    return grafo_modificado
In [169]:
# Funcion que dibuja en el grafo 2 rutas disjuntas (primaria en rojo y secundaria en verde)
def dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo):
    # Posiciones y etiquetas
    pos = {node: (data['pos'][0], data['pos'][1]) for node, data in grafo.nodes(data=True)}
    labels = {node: data['name'] for node, data in grafo.nodes(data=True)}

    plt.figure(figsize=(12, 8))

    # Dibujar el grafo base
    nx.draw(grafo, pos, with_labels=True, labels=labels, node_size=500, node_color='skyblue', font_size=8, font_weight='bold')

    # Añadir etiquetas a los enlaces (distancias)
    edge_labels = nx.get_edge_attributes(grafo, 'distancia')
    edge_labels = {k: f"{v:.0f}" for k, v in edge_labels.items()}
    nx.draw_networkx_edge_labels(grafo, pos, edge_labels=edge_labels)

    # Dibujar la ruta primaria en rojo
    if ruta_primaria and len(ruta_primaria) > 1:
        edges_primaria = [(ruta_primaria[i], ruta_primaria[i+1]) for i in range(len(ruta_primaria)-1)]
        nx.draw_networkx_edges(grafo, pos, edgelist=edges_primaria, edge_color='red', width=2)

    # Dibujar la ruta secundaria en verde
    if ruta_secundaria and len(ruta_secundaria) > 1:
        edges_secundaria = [(ruta_secundaria[i], ruta_secundaria[i+1]) for i in range(len(ruta_secundaria)-1)]
        nx.draw_networkx_edges(grafo, pos, edgelist=edges_secundaria, edge_color='green', width=2, style='dashed')

    plt.title(f'Topología de la Red Óptica DWDM ROADM | {nombre_algoritmo} | Ruta con Protección')
    plt.show()
In [170]:
grafo_red = G_RefNet3_roadm.copy()

Rutas Disjuntas (Ruta Primaria + Ruta Secundaria)

Algoritmos Tradicionales

Dijkstra 1+1

In [172]:
# Algoritmo Dijkstra 1+1

# Función principal para calcular rutas disjuntas utilizando Dijkstra
def calcula_rutas_disjuntas_dijkstra(grafo, origen, destino):
    # Calcular la ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_dijkstra(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)


    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_dijkstra(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = retardo_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
    
In [173]:
# Test de validación Djisktra 1+1. Ruta [8] [23]
grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_dijkstra(grafo, origen, destino)
print(f"Algoritmo Dijkstra 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo Dijkstra 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.000169 s
  Uso de CPU: 22.4 %
  Uso de memoria: 8575.25 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.0001018 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8575.27 MB
In [174]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo Dijkstra 1+1
nombre_algoritmo = 'Dijkstra 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [175]:
# Test de validación Djisktra 1+1. Ruta [8] [7]
grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_dijkstra(grafo, origen, destino)
print(f"Algoritmo Dijkstra 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo Dijkstra 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 8.8e-05 s
  Uso de CPU: 10.8 %
  Uso de memoria: 8483.53 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.000149 s
  Uso de CPU: 3.6 %
  Uso de memoria: 8483.11 MB
In [176]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo Dijkstra 1+1
nombre_algoritmo = 'Dijkstra 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo Bellman-Ford 1+1

In [177]:
# Función principal para calcular rutas disjuntas utilizando Bellman-Ford
def calcula_rutas_disjuntas_bellman_ford(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_bellman_ford(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_bellman_ford(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [178]:
# Test de validación Bellman-Ford 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_bellman_ford(grafo, origen, destino)
print(f"Algoritmo Bellman-Ford 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo Bellman-Ford 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0003359 s
  Uso de CPU: 8.5 %
  Uso de memoria: 8534.3 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.000104 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8534.3 MB
In [179]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo Bellman-Ford 1+1
nombre_algoritmo = 'Bellman-Ford 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [180]:
# Test de validación Bellman-Ford 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_bellman_ford(grafo, origen, destino)
print(f"Algoritmo Bellman-Ford 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo Bellman-Ford 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0002351 s
  Uso de CPU: 9.8 %
  Uso de memoria: 8547.56 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.000175 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8547.56 MB
In [181]:
# Representar las rutas primarias y secundarias [8] [7. Algoritmo Bellman-Ford 1+1
nombre_algoritmo = 'Bellman-Ford 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo A(*) heurística None 1+1

In [182]:
# Algoritmo A* con heurística nula i.e. se comporta como Dijkstra
def calcula_rutas_disjuntas_a_star_none(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_a_star_none(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_a_star_none(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [183]:
# Test de validación A* heurística None 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_a_star_none(grafo, origen, destino)
print(f"Algoritmo A* heurística None 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo A* heurística None 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0001583 s
  Uso de CPU: 8.5 %
  Uso de memoria: 8475.19 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 5.48e-05 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8475.19 MB
In [187]:
# Representar las rutas primarias y secundarias Ruta [8] [23]. Algoritmo A* heurística None 1+1
nombre_algoritmo = 'A* heurística None 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [185]:
# Test de validación A* heurística None 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_a_star_none(grafo, origen, destino)
print(f"Algoritmo A* heurística None 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo A* heurística None 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 8.11e-05 s
  Uso de CPU: 9.9 %
  Uso de memoria: 8480.92 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 6.51e-05 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8480.92 MB
In [186]:
# Representar las rutas primarias y secundarias Ruta [8] [7]. Algoritmo A* heurística None 1+1
nombre_algoritmo = 'A* heurística None 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo A(*) heurística Euclídea 1+1

In [188]:
# Algoritmo A* con heuristica Euclidea 
def calcula_rutas_disjuntas_a_star_euclidea(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_a_star_euclidea(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_a_star_euclidea(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [189]:
# Test de validación A* heurística Euclídea 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_a_star_euclidea(grafo, origen, destino)
print(f"Algoritmo A* heurística Euclídea 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo A* heurística Euclídea 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0001488 s
  Uso de CPU: 10.7 %
  Uso de memoria: 8448.39 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.000103 s
  Uso de CPU: 100.0 %
  Uso de memoria: 8448.39 MB
In [190]:
# Representar las rutas primarias y secundarias  Ruta [8] [23]. Algoritmo A* heurística Euclídea 1+1
nombre_algoritmo = 'A* heurística Euclídea 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [191]:
# Test de validación A* heurística Euclídea 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_a_star_euclidea(grafo, origen, destino)
print(f"Algoritmo A* heurística Euclídea 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo A* heurística Euclídea 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 7.61e-05 s
  Uso de CPU: 15.1 %
  Uso de memoria: 8440.38 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 5.01e-05 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8440.38 MB
In [192]:
# Representar las rutas primarias y secundarias  Ruta [8] [23]. Algoritmo A* heurística Euclídea 1+1
nombre_algoritmo = 'A* heurística Euclídea 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo A(*) heurística Manhattan 1+1

In [193]:
# Algoritmo A* con heuristica Manhattan 1+1 
def calcula_rutas_disjuntas_a_star_man(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_a_star_man(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_a_star_man(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [194]:
# Test de validación A* heurística Manhattan 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_a_star_man(grafo, origen, destino)
print(f"Algoritmo A* heurística Manhattan 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo A* heurística Manhattan 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.000128 s
  Uso de CPU: 9.4 %
  Uso de memoria: 8361.73 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 7.51e-05 s
  Uso de CPU: 0.0 %
  Uso de memoria: 8361.73 MB
In [195]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo A* heurística Manhattan 1+1
nombre_algoritmo = 'A* heurística Manhattan 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [196]:
# Test de validación A* heurística Manhattan 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_a_star_man(grafo, origen, destino)
print(f"Algoritmo A* heurística Manhattan 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo A* heurística Manhattan 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 9.49e-05 s
  Uso de CPU: 12.4 %
  Uso de memoria: 8421.73 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 5.51e-05 s
  Uso de CPU: 100.0 %
  Uso de memoria: 8421.8 MB
In [197]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo A* heurística Manhattan 1+1
nombre_algoritmo = 'A* heurística Manhattan 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmos de encaminamiento metaheurísticos 1+1

Algoritmo GA Basico 1+1

In [199]:
# Algoritmo GA Basico 1+1

def calcula_rutas_disjuntas_ga_basico(grafo, origen, destino, tiempo_maximo=10):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_ga_basico(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Verificar si el destino es accesible desde el origen en el grafo modificado
    if not nx.has_path(grafo_modificado, origen, destino):
        print("El destino no es accesible desde el origen en el grafo modificado")
        resultado_secundaria = {
            'ruta': [],
            'distancia': None,
            'atenuacion': None,
            'osnr': None,
            'retardo': None,
            'tiempo_ejecucion': None,
            'uso_cpu': None,
            'uso_memoria': None
        }
        return {
            'ruta_primaria': resultado_primaria,
            'ruta_secundaria': resultado_secundaria
        }

    # Calcular la ruta secundaria
    print("Calculando ruta secundaria...")
    tiempo_inicio = time.time()
    resultado_secundaria = None
    while time.time() - tiempo_inicio < tiempo_maximo:
        try:
            resultado_secundaria = calcula_ruta_ga_basico(grafo_modificado, origen, destino)
            if resultado_secundaria and resultado_secundaria['ruta']:
                break
        except Exception as e:
            print(f"Error al calcular la ruta secundaria: {e}")
    
    if resultado_secundaria and resultado_secundaria['ruta']:
        ruta_secundaria = resultado_secundaria['ruta']
        print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}, retardo={retardo_secundaria}")  # Depuración
        resultado_secundaria['distancia'] = distancia_secundaria
        resultado_secundaria['atenuacion'] = atenuacion_secundaria
        resultado_secundaria['osnr'] = osnr_secundaria
        resultado_secundaria['retardo'] = retardo_secundaria
    else:
        print("No se pudo calcular la ruta secundaria")
        resultado_secundaria = {
            'ruta': [],
            'distancia': None,
            'atenuacion': None,
            'osnr': None,
            'retardo': None,
            'tiempo_ejecucion': None,
            'uso_cpu': None,
            'uso_memoria': None
        }

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [200]:
# Test de validación GA Básico 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_ga_basico(grafo, origen, destino)
print(f"Algoritmo GA Básico 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Calculando ruta primaria...
Generación inicial: [[8, 10, 9, 11, 13, 17, 21, 24, 26, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23]]
Generación 1/20
Población de la generación 1: [[8, 10, 14, 12, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 2/20
Población de la generación 2: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 3/20
Población de la generación 3: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 4/20
Población de la generación 4: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 5/20
Población de la generación 5: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 6/20
Población de la generación 6: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 7/20
Población de la generación 7: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 8/20
Población de la generación 8: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 9/20
Población de la generación 9: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 10/20
Población de la generación 10: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 11/20
Población de la generación 11: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 12/20
Población de la generación 12: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 13/20
Población de la generación 13: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 14/20
Población de la generación 14: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 15/20
Población de la generación 15: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 16/20
Población de la generación 16: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 17/20
Población de la generación 17: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 18/20
Población de la generación 18: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 19/20
Población de la generación 19: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 20/20
Población de la generación 20: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Ruta primaria encontrada: [8, 10, 14, 15, 18, 22, 25, 23]
Calculando ruta secundaria...
Generación inicial: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Generación 1/20
Población de la generación 1: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 2/20
Población de la generación 2: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 3/20
Población de la generación 3: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 4/20
Población de la generación 4: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 5/20
Población de la generación 5: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 6/20
Población de la generación 6: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 7/20
Población de la generación 7: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 8/20
Población de la generación 8: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 9/20
Población de la generación 9: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 10/20
Población de la generación 10: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 11/20
Población de la generación 11: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 12/20
Población de la generación 12: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 13/20
Población de la generación 13: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 14/20
Población de la generación 14: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 15/20
Población de la generación 15: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 16/20
Población de la generación 16: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 17/20
Población de la generación 17: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 18/20
Población de la generación 18: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 19/20
Población de la generación 19: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 20/20
Población de la generación 20: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Ruta secundaria encontrada: [8, 6, 7, 9, 11, 13, 19, 23]
Resultados de la ruta secundaria: distancia=670.0, atenuacion=35.7, osnr=1, retardo=4.8
Algoritmo GA Básico 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.047544 s
  Uso de CPU: 11.0 %
  Uso de memoria: 8448.0 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.0275638 s
  Uso de CPU: 41.7 %
  Uso de memoria: 8462.38 MB
In [201]:
# Representar las rutas primarias y secundarias  [8] [23]. Algoritmo GA Básico 1+1
nombre_algoritmo = 'GA Básico 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [202]:
# Test de validación GA Básico 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_ga_basico(grafo, origen, destino)
print(f"Algoritmo GA Básico 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Calculando ruta primaria...
Generación inicial: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 4, 3, 1, 2, 5, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7]]
Generación 1/20
Población de la generación 1: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 2/20
Población de la generación 2: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 3/20
Población de la generación 3: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 4/20
Población de la generación 4: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 5/20
Población de la generación 5: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 6/20
Población de la generación 6: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 7/20
Población de la generación 7: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 8/20
Población de la generación 8: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 9/20
Población de la generación 9: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 10/20
Población de la generación 10: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 11/20
Población de la generación 11: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 12/20
Población de la generación 12: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 13/20
Población de la generación 13: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 14/20
Población de la generación 14: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 15/20
Población de la generación 15: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 16/20
Población de la generación 16: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 17/20
Población de la generación 17: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 18/20
Población de la generación 18: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 19/20
Población de la generación 19: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 20/20
Población de la generación 20: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Ruta primaria encontrada: [8, 6, 7]
Calculando ruta secundaria...
Generación inicial: [[8, 3, 1, 2, 5, 7], [8, 10, 9, 7], [8, 3, 1, 2, 5, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 4, 3, 1, 2, 5, 7], [8, 4, 3, 1, 2, 5, 7], [8, 10, 9, 7], [8, 3, 1, 2, 5, 7]]
Generación 1/20
Población de la generación 1: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 2/20
Población de la generación 2: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 3/20
Población de la generación 3: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 4/20
Población de la generación 4: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 5/20
Población de la generación 5: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 6/20
Población de la generación 6: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 7/20
Población de la generación 7: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 8/20
Población de la generación 8: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 9/20
Población de la generación 9: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 10/20
Población de la generación 10: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 11/20
Población de la generación 11: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 12/20
Población de la generación 12: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 13/20
Población de la generación 13: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 14/20
Población de la generación 14: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 15/20
Población de la generación 15: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 16/20
Población de la generación 16: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 17/20
Población de la generación 17: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 18/20
Población de la generación 18: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 19/20
Población de la generación 19: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 20/20
Población de la generación 20: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Ruta secundaria encontrada: [8, 10, 9, 7]
Resultados de la ruta secundaria: distancia=350.0, atenuacion=18.7, osnr=1, retardo=2.4
Algoritmo GA Básico 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.028291 s
  Uso de CPU: 11.9 %
  Uso de memoria: 8440.84 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.0221729 s
  Uso de CPU: 26.3 %
  Uso de memoria: 8441.31 MB
In [203]:
# Representar las rutas primarias y secundarias  [8] [7]. Algoritmo GA Básico 1+1
nombre_algoritmo = 'GA Básico 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo GA Optimizado 1+1

In [204]:
# Algoritmo GA Optimizado 1+1

def calcula_rutas_disjuntas_ga_opt(grafo, origen, destino, tiempo_maximo=10):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_ga_opt(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Verificar si el destino es accesible desde el origen en el grafo modificado
    if not nx.has_path(grafo_modificado, origen, destino):
        print("El destino no es accesible desde el origen en el grafo modificado")
        resultado_secundaria = {
            'ruta': [],
            'distancia': None,
            'atenuacion': None,
            'osnr': None,
            'retardo': None,
            'tiempo_ejecucion': None,
            'uso_cpu': None,
            'uso_memoria': None
        }
        return {
            'ruta_primaria': resultado_primaria,
            'ruta_secundaria': resultado_secundaria
        }

    # Calcular la ruta secundaria
    print("Calculando ruta secundaria...")
    tiempo_inicio = time.time()
    resultado_secundaria = None
    while time.time() - tiempo_inicio < tiempo_maximo:
        try:
            resultado_secundaria = calcula_ruta_ga_opt(grafo_modificado, origen, destino)
            if resultado_secundaria and resultado_secundaria['ruta']:
                break
        except Exception as e:
            print(f"Error al calcular la ruta secundaria: {e}")
    
    if resultado_secundaria and resultado_secundaria['ruta']:
        ruta_secundaria = resultado_secundaria['ruta']
        print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}, retardo={retardo_secundaria}")  # Depuración
        resultado_secundaria['distancia'] = distancia_secundaria
        resultado_secundaria['atenuacion'] = atenuacion_secundaria
        resultado_secundaria['osnr'] = osnr_secundaria
        resultado_secundaria['retardo'] = retardo_secundaria
    else:
        print("No se pudo calcular la ruta secundaria")
        resultado_secundaria = {
            'ruta': [],
            'distancia': None,
            'atenuacion': None,
            'osnr': None,
            'retardo': None,
            'tiempo_ejecucion': None,
            'uso_cpu': None,
            'uso_memoria': None
        }

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [205]:
# Test de validación GA Optimizado 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_ga_opt(grafo, origen, destino)
print(f"Algoritmo GA Optimizado 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Calculando ruta primaria...
Generación inicial: [[8, 10, 9, 11, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 10, 14, 12, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 12, 13, 19, 23], [8, 10, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23], [8, 10, 9, 11, 13, 19, 23]]
Generación 1/50
Población de la generación 1: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 2/50
Población de la generación 2: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 3/50
Población de la generación 3: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 4/50
Población de la generación 4: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 5/50
Población de la generación 5: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 6/50
Población de la generación 6: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 7/50
Población de la generación 7: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 8/50
Población de la generación 8: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 9/50
Población de la generación 9: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 10/50
Población de la generación 10: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 11/50
Población de la generación 11: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 12/50
Población de la generación 12: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 13/50
Población de la generación 13: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 14/50
Población de la generación 14: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 15/50
Población de la generación 15: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 16/50
Población de la generación 16: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 17/50
Población de la generación 17: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 18/50
Población de la generación 18: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 19/50
Población de la generación 19: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 20/50
Población de la generación 20: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 21/50
Población de la generación 21: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 22/50
Población de la generación 22: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 23/50
Población de la generación 23: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 24/50
Población de la generación 24: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 25/50
Población de la generación 25: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 26/50
Población de la generación 26: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 27/50
Población de la generación 27: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 28/50
Población de la generación 28: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 29/50
Población de la generación 29: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 30/50
Población de la generación 30: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 31/50
Población de la generación 31: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 32/50
Población de la generación 32: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 33/50
Población de la generación 33: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 34/50
Población de la generación 34: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 35/50
Población de la generación 35: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 36/50
Población de la generación 36: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 37/50
Población de la generación 37: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 38/50
Población de la generación 38: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 39/50
Población de la generación 39: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 40/50
Población de la generación 40: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 41/50
Población de la generación 41: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 42/50
Población de la generación 42: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 43/50
Población de la generación 43: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 44/50
Población de la generación 44: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 45/50
Población de la generación 45: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 46/50
Población de la generación 46: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 47/50
Población de la generación 47: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 48/50
Población de la generación 48: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 49/50
Población de la generación 49: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 50/50
Población de la generación 50: [[8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23], [8, 10, 14, 15, 18, 22, 25, 23]]
Mejor ruta hasta ahora: [8, 10, 14, 15, 18, 22, 25, 23] con evaluación (450.0, 24.3, 13.6, 3.6)
Ruta primaria encontrada: [8, 10, 14, 15, 18, 22, 25, 23]
Calculando ruta secundaria...
Generación inicial: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 3, 1, 2, 5, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Generación 1/50
Población de la generación 1: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 2/50
Población de la generación 2: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 3/50
Población de la generación 3: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 4/50
Población de la generación 4: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 5/50
Población de la generación 5: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 6/50
Población de la generación 6: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 7/50
Población de la generación 7: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 8/50
Población de la generación 8: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 9/50
Población de la generación 9: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 10/50
Población de la generación 10: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 11/50
Población de la generación 11: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 12/50
Población de la generación 12: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 13/50
Población de la generación 13: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 14/50
Población de la generación 14: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 15/50
Población de la generación 15: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 16/50
Población de la generación 16: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 17/50
Población de la generación 17: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 18/50
Población de la generación 18: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 19/50
Población de la generación 19: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 20/50
Población de la generación 20: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 21/50
Población de la generación 21: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 22/50
Población de la generación 22: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 23/50
Población de la generación 23: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 24/50
Población de la generación 24: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 25/50
Población de la generación 25: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 26/50
Población de la generación 26: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 27/50
Población de la generación 27: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 28/50
Población de la generación 28: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 29/50
Población de la generación 29: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 30/50
Población de la generación 30: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 31/50
Población de la generación 31: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 32/50
Población de la generación 32: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 33/50
Población de la generación 33: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 34/50
Población de la generación 34: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 35/50
Población de la generación 35: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 36/50
Población de la generación 36: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 37/50
Población de la generación 37: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 38/50
Población de la generación 38: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 39/50
Población de la generación 39: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 40/50
Población de la generación 40: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 41/50
Población de la generación 41: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 42/50
Población de la generación 42: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 43/50
Población de la generación 43: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 44/50
Población de la generación 44: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 45/50
Población de la generación 45: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 46/50
Población de la generación 46: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 47/50
Población de la generación 47: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 48/50
Población de la generación 48: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 49/50
Población de la generación 49: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Generación 50/50
Población de la generación 50: [[8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23], [8, 6, 7, 9, 11, 13, 19, 23]]
Mejor ruta hasta ahora: [8, 6, 7, 9, 11, 13, 19, 23] con evaluación (670.0, 35.7, 1, 4.8)
Ruta secundaria encontrada: [8, 6, 7, 9, 11, 13, 19, 23]
Resultados de la ruta secundaria: distancia=670.0, atenuacion=35.7, osnr=1, retardo=4.8
Algoritmo GA Optimizado 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0817151 s
  Uso de CPU: 10.3 %
  Uso de memoria: 8472.47 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.085598 s
  Uso de CPU: 10.8 %
  Uso de memoria: 8451.91 MB
In [206]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo GA optimizado 1+1
nombre_algoritmo = 'GA Optimizado 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [207]:
# Test de validación GA Optimizado 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_ga_opt(grafo, origen, destino)
print(f"Algoritmo GA Optimizado 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Calculando ruta primaria...
Generación inicial: [[8, 10, 9, 7], [8, 4, 3, 1, 2, 5, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Generación 1/50
Población de la generación 1: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 2/50
Población de la generación 2: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 3/50
Población de la generación 3: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 4/50
Población de la generación 4: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 5/50
Población de la generación 5: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 6/50
Población de la generación 6: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 7/50
Población de la generación 7: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 8/50
Población de la generación 8: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 9/50
Población de la generación 9: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 10/50
Población de la generación 10: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 11/50
Población de la generación 11: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 12/50
Población de la generación 12: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 13/50
Población de la generación 13: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 14/50
Población de la generación 14: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 15/50
Población de la generación 15: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 16/50
Población de la generación 16: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 17/50
Población de la generación 17: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 18/50
Población de la generación 18: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 19/50
Población de la generación 19: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 20/50
Población de la generación 20: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 21/50
Población de la generación 21: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 22/50
Población de la generación 22: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 23/50
Población de la generación 23: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 24/50
Población de la generación 24: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 25/50
Población de la generación 25: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 26/50
Población de la generación 26: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 27/50
Población de la generación 27: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 28/50
Población de la generación 28: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 29/50
Población de la generación 29: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 30/50
Población de la generación 30: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 31/50
Población de la generación 31: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 32/50
Población de la generación 32: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 33/50
Población de la generación 33: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 34/50
Población de la generación 34: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 35/50
Población de la generación 35: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 36/50
Población de la generación 36: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 37/50
Población de la generación 37: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 38/50
Población de la generación 38: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 39/50
Población de la generación 39: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 40/50
Población de la generación 40: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 41/50
Población de la generación 41: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 42/50
Población de la generación 42: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 43/50
Población de la generación 43: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 44/50
Población de la generación 44: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 45/50
Población de la generación 45: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 46/50
Población de la generación 46: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 47/50
Población de la generación 47: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 48/50
Población de la generación 48: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 49/50
Población de la generación 49: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 50/50
Población de la generación 50: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Ruta primaria encontrada: [8, 6, 7]
Calculando ruta secundaria...
Generación inicial: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 3, 1, 2, 5, 7], [8, 3, 1, 2, 5, 7], [8, 3, 1, 2, 5, 7], [8, 10, 9, 7], [8, 4, 3, 1, 2, 5, 7], [8, 10, 9, 7], [8, 3, 1, 2, 5, 7], [8, 4, 3, 1, 2, 5, 7]]
Generación 1/50
Población de la generación 1: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 2/50
Población de la generación 2: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 3/50
Población de la generación 3: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 4/50
Población de la generación 4: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 5/50
Población de la generación 5: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 6/50
Población de la generación 6: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 7/50
Población de la generación 7: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 8/50
Población de la generación 8: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 9/50
Población de la generación 9: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 10/50
Población de la generación 10: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 11/50
Población de la generación 11: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 12/50
Población de la generación 12: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 13/50
Población de la generación 13: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 14/50
Población de la generación 14: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 15/50
Población de la generación 15: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 16/50
Población de la generación 16: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 17/50
Población de la generación 17: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 18/50
Población de la generación 18: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 19/50
Población de la generación 19: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 20/50
Población de la generación 20: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 21/50
Población de la generación 21: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 22/50
Población de la generación 22: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 23/50
Población de la generación 23: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 24/50
Población de la generación 24: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 25/50
Población de la generación 25: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 26/50
Población de la generación 26: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 27/50
Población de la generación 27: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 28/50
Población de la generación 28: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 29/50
Población de la generación 29: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 30/50
Población de la generación 30: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 31/50
Población de la generación 31: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 32/50
Población de la generación 32: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 33/50
Población de la generación 33: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 34/50
Población de la generación 34: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 35/50
Población de la generación 35: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 36/50
Población de la generación 36: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 37/50
Población de la generación 37: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 38/50
Población de la generación 38: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 39/50
Población de la generación 39: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 40/50
Población de la generación 40: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 41/50
Población de la generación 41: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 42/50
Población de la generación 42: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 43/50
Población de la generación 43: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 44/50
Población de la generación 44: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 45/50
Población de la generación 45: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 46/50
Población de la generación 46: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 47/50
Población de la generación 47: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 48/50
Población de la generación 48: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 49/50
Población de la generación 49: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Generación 50/50
Población de la generación 50: [[8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7], [8, 10, 9, 7]]
Mejor ruta hasta ahora: [8, 10, 9, 7] con evaluación (350.0, 18.7, 1, 2.4)
Ruta secundaria encontrada: [8, 10, 9, 7]
Resultados de la ruta secundaria: distancia=350.0, atenuacion=18.7, osnr=1, retardo=2.4
Algoritmo GA Optimizado 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0573521 s
  Uso de CPU: 13.0 %
  Uso de memoria: 8464.45 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.0488629 s
  Uso de CPU: 15.4 %
  Uso de memoria: 8437.45 MB
In [208]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo GA optimizado 1+1
nombre_algoritmo = 'GA Optimizado 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo ACO Básico 1+1

In [209]:
def calcula_rutas_disjuntas_aco_basico(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_aco_basico(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_aco_basico(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [210]:
# Test de validación ACO Básico 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_aco_basico(grafo, origen, destino)
print(f"Algoritmo ACO Básico 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo ACO Básico 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.190738 s
  Uso de CPU: 6.6 %
  Uso de memoria: 8422.83 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.1692801 s
  Uso de CPU: 15.4 %
  Uso de memoria: 8414.11 MB
In [211]:
# Representar las rutas primarias y secundarias  [8] [23]. Algoritmo ACO Básico 1+1
nombre_algoritmo = 'ACO Básico 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [212]:
# Test de validación ACO Básico 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_aco_basico(grafo, origen, destino)
print(f"Algoritmo ACO Básico 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo ACO Básico 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.156395 s
  Uso de CPU: 7.7 %
  Uso de memoria: 8394.58 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.1936932 s
  Uso de CPU: 4.7 %
  Uso de memoria: 8345.73 MB
In [213]:
# Representar las rutas primarias y secundarias  [8] [7]. Algoritmo ACO Básico 1+1
nombre_algoritmo = 'ACO Básico 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo ACO Optimizado 1+1

In [214]:
def calcula_rutas_disjuntas_aco_opt(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_aco_opt(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_aco_opt(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [215]:
# Test de validación ACO Optimizado 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_aco_opt(grafo, origen, destino)
print(f"Algoritmo ACO Optimizado 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo ACO Optimizado 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.1370623 s
  Uso de CPU: 7.6 %
  Uso de memoria: 8464.31 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.159085 s
  Uso de CPU: 8.9 %
  Uso de memoria: 8429.48 MB
In [216]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo ACO Optimizado 1+1
nombre_algoritmo = 'ACO Optimizado 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [217]:
# Test de validación ACO Optimizado 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_aco_opt(grafo, origen, destino)
print(f"Algoritmo ACO Optimizado 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo ACO Optimizado 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0720646 s
  Uso de CPU: 8.6 %
  Uso de memoria: 8426.27 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.117125 s
  Uso de CPU: 8.7 %
  Uso de memoria: 8399.33 MB
In [218]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo ACO Optimizado 1+1
nombre_algoritmo = 'ACO Optimizado 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo ACO Alternativo 1+1

In [219]:
def calcula_rutas_disjuntas_aco_alt(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_aco_alt(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_aco_alt(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [220]:
# Test de validación ACO Alternativo 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_aco_alt(grafo, origen, destino)
print(f"Algoritmo ACO Alternativo 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo ACO Alternativo 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.1969252 s
  Uso de CPU: 8.8 %
  Uso de memoria: 8463.73 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.16646 s
  Uso de CPU: 10.6 %
  Uso de memoria: 8450.47 MB
In [221]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo ACO Alternativo 1+1
nombre_algoritmo = 'ACO Alternativo 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [222]:
# Test de validación ACO Alternativo 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_aco_alt(grafo, origen, destino)
print(f"Algoritmo ACO Alternativo 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo ACO Alternativo 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.1794169 s
  Uso de CPU: 7.5 %
  Uso de memoria: 8435.34 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.1392143 s
  Uso de CPU: 6.3 %
  Uso de memoria: 8413.91 MB
In [223]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo ACO Alternativo 1+1
nombre_algoritmo = 'ACO Alternativo 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo ACO Bidireccional 1+1

In [224]:
def calcula_rutas_disjuntas_aco_bid(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_aco_bid(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    resultado_secundaria = calcula_ruta_aco_bid(grafo_modificado, origen, destino)
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = None

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [229]:
# Test de validación ACO Bidireccional 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_aco_bid(grafo, origen, destino)
print(f"Algoritmo ACO Bidireccional 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Algoritmo ACO Bidireccional 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0606573 s
  Uso de CPU: 9.3 %
  Uso de memoria: 8453.86 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.0526772 s
  Uso de CPU: 8.9 %
  Uso de memoria: 8423.31 MB
In [226]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo ACO Bidireccional 1+1
nombre_algoritmo = 'ACO Bidireccional 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [227]:
# Test de validación ACO Bidireccional 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_aco_bid(grafo, origen, destino)
print(f"Algoritmo ACO Bidireccional 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Algoritmo ACO Bidireccional 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.021697 s
  Uso de CPU: 14.3 %
  Uso de memoria: 8432.58 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.0272269 s
  Uso de CPU: 16.8 %
  Uso de memoria: 8423.45 MB
In [228]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo ACO Bidireccional 1+1
nombre_algoritmo = 'ACO Bidireccional 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo ACO Final 1+1

In [230]:
def calcula_rutas_disjuntas_aco_final(grafo, origen, destino, tiempo_maximo=10):
    proceso = psutil.Process()
    
    # Calcular ruta primaria
    print("Calculando ruta primaria...")
    resultado_primaria = calcula_ruta_aco_final(grafo, origen, destino)
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Verificar si el destino es accesible desde el origen en el grafo modificado
    if not nx.has_path(grafo_modificado, origen, destino):
        print("El destino no es accesible desde el origen en el grafo modificado")
        resultado_secundaria = {
            'ruta': [],
            'distancia': None,
            'atenuacion': None,
            'osnr': None,
            'retardo': None,
            'tiempo_ejecucion': None,
            'uso_cpu': None,
            'uso_memoria': None
        }
        return {
            'ruta_primaria': resultado_primaria,
            'ruta_secundaria': resultado_secundaria
        }

    # Calcular la ruta secundaria
    print("Calculando ruta secundaria...")
    tiempo_inicio = time.time()
    resultado_secundaria = None
    while time.time() - tiempo_inicio < tiempo_maximo:
        try:
            resultado_secundaria = calcula_ruta_aco_final(grafo_modificado, origen, destino)
            if resultado_secundaria and resultado_secundaria['ruta']:
                break
        except Exception as e:
            print(f"Error al calcular la ruta secundaria: {e}")
    
    if resultado_secundaria and resultado_secundaria['ruta']:
        ruta_secundaria = resultado_secundaria['ruta']
        print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}, retardo={retardo_secundaria}")  # Depuración
        resultado_secundaria['distancia'] = distancia_secundaria
        resultado_secundaria['atenuacion'] = atenuacion_secundaria
        resultado_secundaria['osnr'] = osnr_secundaria
        resultado_secundaria['retardo'] = retardo_secundaria
    else:
        print("No se pudo calcular la ruta secundaria")
        resultado_secundaria = {
            'ruta': [],
            'distancia': None,
            'atenuacion': None,
            'osnr': None,
            'retardo': None,
            'tiempo_ejecucion': None,
            'uso_cpu': None,
            'uso_memoria': None
        }

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria
    }
In [231]:
# Test de validación ACO Final 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_aco_final(grafo, origen, destino)
print(f"Algoritmo ACO Final 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Calculando ruta primaria...
Ruta primaria encontrada: [8, 10, 14, 15, 18, 22, 25, 23]
Calculando ruta secundaria...
Ruta secundaria encontrada: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23]
Algoritmo ACO Final 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.0217249 s
  Uso de CPU: 9.7 %
  Uso de memoria: 8432.62 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23]
  Distancia: 770.0 km
  Atenuación: 41.1 dB
  OSNR: 1 dB
  Latencia e2e: 5.9 ms
  Tiempo de cálculo: 0.0259092 s
  Uso de CPU: 12.0 %
  Uso de memoria: 8407.27 MB
In [232]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo ACO Final 1+1
nombre_algoritmo = 'ACO Final 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [233]:
# Test de validación ACO Final 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_aco_final(grafo, origen, destino)
print(f"Algoritmo ACO Final 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Calculando ruta primaria...
Ruta primaria encontrada: [8, 6, 7]
Calculando ruta secundaria...
Ruta secundaria encontrada: [8, 10, 9, 7]
Algoritmo ACO Final 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.012682 s
  Uso de CPU: 10.2 %
  Uso de memoria: 8436.66 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.0149801 s
  Uso de CPU: 5.4 %
  Uso de memoria: 8413.02 MB
In [234]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo ACO Final 1+1
nombre_algoritmo = 'ACO Final 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Es la segunda vez que el algoritmo GA Final muestgra que encuentra rutas menos óptimas, como se puede apreciar en la ruta secundaria (color verde).

Algoritmo BCO

In [235]:
# Algoritmo BCO Basico 1+1
def calcula_rutas_disjuntas_bco_basico(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Medir el uso de CPU y memoria antes del cálculo
    uso_cpu_inicial = proceso.cpu_percent(interval=None)
    uso_memoria_inicial = proceso.memory_info().rss

    # Calcular ruta primaria
    #print("Calculando ruta primaria...")
    tiempo_inicio = time.time()
    resultado_primaria = calcula_ruta_bco_basico(grafo, origen, destino)
    tiempo_final = time.time()
    tiempo_calculo_primaria = tiempo_final - tiempo_inicio
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    #print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    #print("Calculando ruta secundaria...")
    tiempo_inicio = time.time()
    resultado_secundaria = calcula_ruta_bco_basico(grafo_modificado, origen, destino)
    tiempo_final = time.time()
    tiempo_calculo_secundaria = tiempo_final - tiempo_inicio
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        #print(f"Ruta secundaria encontrada: {ruta_secundaria}")  # Depuración
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
        #print(f"Resultados de la ruta secundaria: distancia={distancia_secundaria}, atenuacion={atenuacion_secundaria}, osnr={osnr_secundaria}")  # Depuración
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = retardo_secundaria = None

    # Medir el uso de CPU y memoria después del cálculo
    uso_cpu_final = proceso.cpu_percent(interval=None)
    uso_memoria_final = proceso.memory_info().rss
    uso_cpu = uso_cpu_final - uso_cpu_inicial
    uso_memoria = (uso_memoria_final - uso_memoria_inicial) / (1024 ** 2)  # Convertir a MB

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria,
        'tiempo_calculo_primaria': tiempo_calculo_primaria,
        'tiempo_calculo_secundaria': tiempo_calculo_secundaria,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [236]:
# Test de validación BCO Básico 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_aco_basico(grafo, origen, destino)
print(f"Algoritmo BCO Básico 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo BCO Básico 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.190757 s
  Uso de CPU: 8.5 %
  Uso de memoria: 8471.97 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 19, 23]
  Distancia: 670.0 km
  Atenuación: 35.7 dB
  OSNR: 1 dB
  Latencia e2e: 4.8 ms
  Tiempo de cálculo: 0.1662629 s
  Uso de CPU: 12.9 %
  Uso de memoria: 8430.09 MB
In [237]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo BCO Básico 1+1
nombre_algoritmo = 'BCO Básico 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [238]:
# Test de validación BCO Básico 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_aco_basico(grafo, origen, destino)
print(f"Algoritmo BCO Básico 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Algoritmo BCO Básico 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.2431321 s
  Uso de CPU: 10.3 %
  Uso de memoria: 8451.95 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.0917931 s
  Uso de CPU: 9.2 %
  Uso de memoria: 8432.75 MB
In [239]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo BCO Básico 1+1
nombre_algoritmo = 'BCO Básico 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)

Algoritmo PSO Optimizado 1+1

In [240]:
# Algoritmo POSO Optinizado 1+1
def calcula_rutas_disjuntas_pso_opt(grafo, origen, destino):
    proceso = psutil.Process()
    
    # Medir el uso de CPU y memoria antes del cálculo
    uso_cpu_inicial = proceso.cpu_percent(interval=None)
    uso_memoria_inicial = proceso.memory_info().rss

    # Calcular ruta primaria
    tiempo_inicio = time.time()
    resultado_primaria = calcula_ruta_pso_opt(grafo, origen, destino)
    tiempo_final = time.time()
    tiempo_calculo_primaria = tiempo_final - tiempo_inicio
    
    if resultado_primaria is None:
        raise ValueError("No se pudo calcular la ruta primaria")

    ruta_primaria = resultado_primaria['ruta']
    print(f"Ruta primaria encontrada: {ruta_primaria}")  # Depuración

    # Modificar el grafo para la ruta secundaria
    grafo_modificado = modificar_grafo(grafo, ruta_primaria, origen, destino)

    # Calcular la ruta secundaria
    tiempo_inicio = time.time()
    resultado_secundaria = calcula_ruta_pso_opt(grafo_modificado, origen, destino)
    tiempo_final = time.time()
    tiempo_calculo_secundaria = tiempo_final - tiempo_inicio
    
    if resultado_secundaria is not None:
        ruta_secundaria = resultado_secundaria['ruta']
        distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo_modificado)
    else:
        print("No se pudo calcular la ruta secundaria")
        ruta_secundaria = []
        distancia_secundaria = atenuacion_secundaria = osnr_secundaria = retardo_secundaria = None

    # Medir el uso de CPU y memoria después del cálculo
    uso_cpu_final = proceso.cpu_percent(interval=None)
    uso_memoria_final = proceso.memory_info().rss
    uso_cpu = uso_cpu_final - uso_cpu_inicial
    uso_memoria = (uso_memoria_final - uso_memoria_inicial) / (1024 ** 2)  # Convertir a MB

    return {
        'ruta_primaria': resultado_primaria,
        'ruta_secundaria': resultado_secundaria if resultado_secundaria is not None else "No ha sido posible encontrar ruta secundaria",
        'tiempo_calculo_primaria': tiempo_calculo_primaria,
        'tiempo_calculo_secundaria': tiempo_calculo_secundaria,
        'uso_cpu': uso_cpu,
        'uso_memoria': uso_memoria
    }
In [241]:
# Test de validación PSO Optimizado 1+1. Ruta [8] [23]

grafo = grafo_red
origen = 8
destino = 23

resultados = calcula_rutas_disjuntas_pso_opt(grafo, origen, destino)
print(f"Algoritmo PSO Optimizado 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 10, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 10, 9, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 1, 2, 5, 7, 6]
Ruta primaria encontrada: [8, 10, 14, 15, 18, 22, 25, 23]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 9, 11, 13, 12]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 9, 11, 13, 12]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 23. Ruta actual: [8, 4, 3, 1, 2, 5, 7, 9, 11, 13, 12]
Algoritmo PSO Optimizado 1+1
Ruta Primaria:
  Ruta: [8, 10, 14, 15, 18, 22, 25, 23]
  Distancia: 450.0 km
  Atenuación: 24.3 dB
  OSNR: 13.6 dB
  Latencia e2e: 3.6 ms
  Tiempo de cálculo: 0.002696 s
  Uso de CPU: 13.6 %
  Uso de memoria: 8474.78 MB
Ruta Secundaria:
  Ruta: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23]
  Distancia: 770.0 km
  Atenuación: 41.1 dB
  OSNR: 1 dB
  Latencia e2e: 5.9 ms
  Tiempo de cálculo: 0.0041533 s
  Uso de CPU: 11.4 %
  Uso de memoria: 8472.42 MB
In [242]:
# Representar las rutas primarias y secundarias [8] [23]. Algoritmo PSO Optimizado 1+1
nombre_algoritmo = 'PSO Optimizado 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [243]:
# Test de validación PSO Optimizado 1+1. Ruta [8] [7]

grafo = grafo_red
origen = 8
destino = 7

resultados = calcula_rutas_disjuntas_pso_opt(grafo, origen, destino)
print(f"Algoritmo PSO Optimizado 1+1")
mostrar_resultados_rutas_disjuntas(resultados)
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 9, 11, 13, 17, 21, 24, 26, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 12, 13, 17, 21, 24, 26, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Ruta primaria encontrada: [8, 6, 7]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 12]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Algoritmo PSO Optimizado 1+1
Ruta Primaria:
  Ruta: [8, 6, 7]
  Distancia: 220.0 km
  Atenuación: 11.6 dB
  OSNR: 1 dB
  Latencia e2e: 1.5 ms
  Tiempo de cálculo: 0.0020669 s
  Uso de CPU: 11.5 %
  Uso de memoria: 8464.25 MB
Ruta Secundaria:
  Ruta: [8, 10, 9, 7]
  Distancia: 350.0 km
  Atenuación: 18.7 dB
  OSNR: 1 dB
  Latencia e2e: 2.4 ms
  Tiempo de cálculo: 0.0023489 s
  Uso de CPU: 11.4 %
  Uso de memoria: 8467.47 MB
In [244]:
# Representar las rutas primarias y secundarias [8] [7]. Algoritmo PSO Optimizado 1+1
nombre_algoritmo = 'PSO Optimizado 1+1'
ruta_primaria = resultados['ruta_primaria']['ruta']
ruta_secundaria = resultados['ruta_secundaria']['ruta']

dibujar_rutas_disjuntas(grafo, ruta_primaria, ruta_secundaria, nombre_algoritmo)
In [ ]:
 
In [ ]:
 
In [ ]:
 

Se han validado los algoritmos seleccionados con una ruta especialmente seleccionada para tal fin. Una vez validados la implementación, el funcionamiento y los resultados se procede a probar los modelos con batches / lotes de demandas.

Pruebas con matrices de tráfico 100G sin proteger y protegidos para los algoritmos de encaminamiento validados

Funciones auxiliares

In [245]:
# A partir de la funcion anterior se amplia el criterio de evaluacion de la ruta para incluir distancia
# Esto permitira evaluar la distancia de la ruta calculada
# y en el futuro, implementar estos algoritmos de encaminamiento con coste admnistrativo = distancia (e.g. capa IP / routers)
# V3.0 (distancia, atenuacion, osnr) es la versión anterior 
# V4.0 (distancia, atenuacion, osnr, retardo) es la versión actual y definitiva
def evaluar_ruta(ruta, grafo):
    distancia_total = 0
    atenuacion_total = 0
    osnr_total = float('inf')
    # Retardo de procesamiento por nodo en segundos. Es una aproximación, como todo el modelo de red.
    #Agnóstico respecto de fabricantes e integradores (componentes, módulos, equipos)
    retardo_procesamiento_por_nodo = 0.0002  
    
    for i in range(len(ruta) - 1):
        u = ruta[i]
        v = ruta[i + 1]
        if grafo.has_edge(u, v):
            datos_enlace = grafo[u][v]
            distancia_total += datos_enlace['distancia']
            atenuacion_total += datos_enlace['atenuacion']
            osnr_total = min(osnr_total, datos_enlace['osnr'])
        else:
            return (float('inf'), float('inf'), 0, float('inf'))
    
    # Calcula retardo de propagación
    retardo_propagacion = distancia_total * 1000 / velocidad_luz_fibra  # Convertir distancia de km a m
    
    # Calcula retardo de procesamiento total
    numero_nodos = len(ruta) - 1
    retardo_procesamiento_total = numero_nodos * retardo_procesamiento_por_nodo
    
    # Calcula retardo end-to-end total
    retardo_total = retardo_propagacion + retardo_procesamiento_total  # en segundos
    
    # Convierte a ms (se retorna el retardo en ms. Unidad de medida habitual con este parámetro)
    retardo_total_ms = retardo_total * 1000
    
    return (round(distancia_total, 1), round(atenuacion_total, 1), round(osnr_total, 1), round(retardo_total_ms, 1))
    
In [246]:
# Función para leer la matriz de tráfico
def leer_matriz_trafico(nombre_archivo):
    df = pd.read_csv(nombre_archivo, delimiter=';', encoding='utf-8', header=None)
    tipo_trafico = df.iloc[0, 0]
    nodos = df.iloc[0, 1:].dropna().astype(int).tolist()
    if 808 in nodos:
        # Elimina el marcador 808 de los nodos
        nodos.remove(808)  
    demandas = df.iloc[1:, 1:].dropna(how='all').astype(float).values
    return tipo_trafico, nodos, demandas
In [247]:
# Función para seleccionar y ejecutar el algoritmo de encaminamiento
# Nota: es importante seleccionar las variantes adecuadas de los algoritmos propuestos
def ejecutar_algoritmo(grafo, origen, destino, algoritmo):
    if algoritmo == 'calcula_ruta_dijkstra':
        return calcula_ruta_dijkstra(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_bellman_ford':
        return calcula_ruta_bellman_ford(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_a_star_euclidea':
        return calcula_ruta_a_star_euclidea(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_ga_opt':
        return calcula_ruta_ga_opt(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_aco_bid':
        return calcula_ruta_aco_bid(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_bco_basico':
        return calcula_ruta_bco_basico(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_pso_opt':
        return calcula_ruta_pso_opt(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_tsa':
        return calcula_ruta_tsa(grafo, origen, destino)
    elif algoritmo == 'calcula_ruta_sa':
        return calcula_ruta_sa(grafo, origen, destino)
    else:
        raise ValueError(f"Algoritmo desconocido: {algoritmo}")
In [248]:
# Función para convertir las rutas almacenadas como cadenas de texto en listas
def convertir_ruta(ruta):
    if isinstance(ruta, str):
        try:
            ruta = eval(ruta)
        except (SyntaxError, NameError):
            return []
    if isinstance(ruta, list):
        return ruta
    return []
In [249]:
# Función para visualizar rutas en el grafo
def visualizar_rutas(df, grafo, nombre_algoritmo):
    # Obtener posiciones de los nodos para la visualización
    pos = nx.get_node_attributes(grafo, 'pos')

    # Verificar que todas las posiciones estén definidas
    for nodo in grafo.nodes():
        if nodo not in pos:
            pos[nodo] = (0, 0)  # Asignar una posición por defecto para evitar errores

    # Crear una lista de colores
    colores = plt.cm.get_cmap('tab20', len(df)).colors

    plt.figure(figsize=(12, 8))
    nx.draw(grafo, pos, with_labels=True, node_size=500, node_color='skyblue', font_size=5, font_weight='bold')

    for i, row in df.iterrows():
        origen = row['origen']
        destino = row['destino']
        ruta_primaria = convertir_ruta(row['ruta_primaria'])
        ruta_secundaria = convertir_ruta(row.get('ruta_secundaria', []))
        color = colores[i % len(colores)]

        print(f"Visualizando ruta de {origen} a {destino}")
        print(f"Ruta primaria: {ruta_primaria}")
        print(f"Ruta secundaria: {ruta_secundaria}")

        # Dibujar la ruta primaria
        if ruta_primaria and len(ruta_primaria) > 1:
            edges_primaria = list(zip(ruta_primaria[:-1], ruta_primaria[1:]))
            print(f"Aristas de la ruta primaria: {edges_primaria}")
            nx.draw_networkx_edges(grafo, pos, edgelist=edges_primaria, edge_color=[color], width=2)

        # Dibujar la ruta secundaria si existe
        if ruta_secundaria and len(ruta_secundaria) > 1:
            edges_secundaria = list(zip(ruta_secundaria[:-1], ruta_secundaria[1:]))
            print(f"Aristas de la ruta secundaria: {edges_secundaria}")
            nx.draw_networkx_edges(grafo, pos, edgelist=edges_secundaria, edge_color=[color], width=2, style='dashed')

    plt.title(f'Rutas en la Red DWDM RefNet3 100G U {nombre_algoritmo}')
    plt.show()
In [250]:
# Función para graficar las rutas usando Plotly
def grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo):
    edge_x = []
    edge_y = []
    for edge in grafo.edges():
        x0, y0 = grafo.nodes[edge[0]]['pos']
        x1, y1 = grafo.nodes[edge[1]]['pos']
        edge_x.append(x0)
        edge_x.append(x1)
        edge_x.append(None)
        edge_y.append(y0)
        edge_y.append(y1)
        edge_y.append(None)

    edge_trace = go.Scatter(
        x=edge_x, y=edge_y,
        line=dict(width=0.5, color='#888'),
        hoverinfo='none',
        mode='lines')

    node_x = []
    node_y = []
    for node in grafo.nodes():
        x, y = grafo.nodes[node]['pos']
        node_x.append(x)
        node_y.append(y)

    node_trace = go.Scatter(
        x=[], y=[],
        text=[],
        mode='markers+text',
        hoverinfo='text',
        marker=dict(
            showscale=True,
            colorscale='YlGnBu',
            size=13,
            color='black',
            colorbar=dict(
                thickness=15,
                title='Conexiones de Nodos',
                xanchor='left',
                titleside='right'
            )
        )
    )

    for node in grafo.nodes():
        x, y = pos[node]
        node_trace['x'] += (x,)
        node_trace['y'] += (y,)
        node_info = f"ID: {node}"
        node_trace['text'] += (node_info,)

    fig = go.Figure(data=[edge_trace, node_trace],
                    layout=go.Layout(
                        title=f'<br>Rutas en la Red DWDM RefNet3 100G U {nombre_algoritmo}',
                        titlefont_size=16,
                        showlegend=False,
                        hovermode='closest',
                        margin=dict(b=20, l=5, r=5, t=40),
                        annotations=[dict(
                            text="Red DWDM",
                            showarrow=False,
                            xref="paper", yref="paper",
                            x=0.005, y=-0.002)],
                        xaxis=dict(showgrid=False, zeroline=False),
                        yaxis=dict(showgrid=False, zeroline=False))
                    )

    colores = ['red', 'blue', 'green', 'purple', 'orange']
    color_index = 0

    for i, row in df_resultados.iterrows():
        for ruta_col in ['ruta_primaria', 'ruta_secundaria']:
            ruta = row[ruta_col]
            if isinstance(ruta, list) and len(ruta) > 0:
                ruta_x = []
                ruta_y = []
                for j in range(len(ruta) - 1):
                    x0, y0 = grafo.nodes[ruta[j]]['pos']
                    x1, y1 = grafo.nodes[ruta[j + 1]]['pos']
                    ruta_x.append(x0)
                    ruta_x.append(x1)
                    ruta_x.append(None)
                    ruta_y.append(y0)
                    ruta_y.append(y1)
                    ruta_y.append(None)
                
                color = colores[color_index % len(colores)]
                fig.add_trace(go.Scatter(
                    x=ruta_x, y=ruta_y,
                    line=dict(width=2, color=color),
                    mode='lines',
                    name=f"Ruta {ruta_col} de {row['origen']} a {row['destino']}"))
                
                color_index += 1

    fig.show()

Inicialización

In [251]:
# Se regenera el grafo
grafo_red = G_RefNet3_roadm.copy()
In [252]:
def verificar_coordenadas_nodos(grafo):
    for nodo in grafo.nodes(data=True):
        if 'pos' in nodo[1]:
            print(f"Nodo {nodo[0]}: x = {nodo[1]['pos'][0]}, y = {nodo[1]['pos'][1]}")
        else:
            print(f"Nodo {nodo[0]} no tiene coordenadas definidas.")

# Llamar a la función para verificar las coordenadas de los nodos
verificar_coordenadas_nodos(grafo_red)
Nodo 1: x = 1.0, y = 9.0
Nodo 4: x = 4.0, y = 17.0
Nodo 2: x = 2.0, y = 7.0
Nodo 3: x = 3.0, y = 10.0
Nodo 5: x = 5.0, y = 5.0
Nodo 7: x = 11.0, y = 4.0
Nodo 8: x = 14.0, y = 11.0
Nodo 6: x = 9.0, y = 7.0
Nodo 10: x = 20.0, y = 9.0
Nodo 9: x = 18.0, y = 3.0
Nodo 11: x = 23.0, y = 2.0
Nodo 12: x = 25.0, y = 4.0
Nodo 13: x = 27.0, y = 2.0
Nodo 19: x = 36.0, y = 7.0
Nodo 20: x = 37.0, y = 13.0
Nodo 14: x = 28.0, y = 10.0
Nodo 15: x = 31.0, y = 9.0
Nodo 21: x = 37.0, y = 4.0
Nodo 22: x = 39.0, y = 10.0
Nodo 23: x = 40.0, y = 8.0
Nodo 24: x = 40.0, y = 2.0
Nodo 25: x = 43.0, y = 10.0
Nodo 16: x = 32.0, y = 12.0
Nodo 17: x = 32.0, y = 3.0
Nodo 18: x = 34.0, y = 10.0
Nodo 26: x = 43.0, y = 1.0
Nodo 28: x = 48.0, y = 12.0
Nodo 27: x = 46.0, y = 11.0
Nodo 30: x = 49.0, y = 16.0
Nodo 29: x = 49.0, y = 14.0
In [253]:
# Verificar las propiedades de los enlaces
for u, v, data in grafo_red.edges(data=True):
    print(f"Enlace {u}-{v}: Distancia = {data['distancia']} km, Atenuación = {data['atenuacion']} dB, OSNR = {data['osnr']} dB")
Enlace 1-3: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 1-2: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 4-3: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 4-8: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 2-5: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 3-8: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 5-7: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 7-6: Distancia = 70.0 km, Atenuación = 3.7 dB, OSNR = 7.8 dB
Enlace 7-9: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 8-6: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 8-10: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 10-9: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 10-14: Distancia = 100.0 km, Atenuación = 5.4 dB, OSNR = 13.6 dB
Enlace 9-11: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 11-13: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 12-13: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 12-14: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 13-17: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 13-19: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 19-23: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 20-16: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 20-30: Distancia = 200.0 km, Atenuación = 10.6 dB, OSNR = 3.8 dB
Enlace 14-15: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 15-18: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 21-24: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 21-17: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 22-25: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 22-18: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 23-25: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 23-26: Distancia = 150.0 km, Atenuación = 7.9 dB, OSNR = 1 dB
Enlace 24-26: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 25-27: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 16-18: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 28-29: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 28-27: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
Enlace 30-29: Distancia = 50.0 km, Atenuación = 2.7 dB, OSNR = 13.8 dB
In [254]:
# Codigo auxiliar para verificar y representar graficamente el grafo y comprobar su estado
# Visualizar el grafo
pos = {node: (data['pos'][0], data['pos'][1]) for node, data in grafo_red.nodes(data=True)}
labels = {node: data['name'] for node, data in grafo_red.nodes(data=True)}

plt.figure(figsize=(12, 8))
nx.draw(grafo_red, pos, with_labels=True, labels=labels, node_size=500, node_color='skyblue', font_size=8, font_weight='bold')

# Añadir etiquetas a los enlaces (distancias) y asegurarse de que sean enteros
edge_labels = nx.get_edge_attributes(grafo_red, 'distancia')
edge_labels = {k: f"{v:.0f}" for k, v in edge_labels.items()}
nx.draw_networkx_edge_labels(grafo_red, pos, edge_labels=edge_labels)

plt.title('Topología de la Red Óptica (DWDM / ROADM)')
plt.show()

Cálculo de rutas simples con la matriz de demandas (tráfico) 100G no protegido: RefNet3_TM_100U.csv

In [255]:
# Calcular rutas para todas las demandas de una matriz con trafico no protegido
def calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, algoritmo):
    
    resultados = []
    tiempo_total = 0
    cpu_total = 0
    memoria_total = 0
    num_demandas = 0
    demandas_por_dupla = {}
    
    for i in range(len(demandas)):
        for j in range(i):
            if demandas[i][j] > 0:
                num_demandas += int(demandas[i][j])
                dupla = (nodos[i], nodos[j])
                demandas_por_dupla[dupla] = int(demandas[i][j])

    print(f"\nTotal de demandas en la matriz {tipo_trafico}: {num_demandas}")

    resultados = []
    demanda_actual = 1
    tiempo_total = 0
    cpu_total = 0
    memoria_total = 0

    for i in range(len(demandas)):
        for j in range(i):
            if demandas[i][j] > 0:
                origen = nodos[i]
                destino = nodos[j]
                num_demandas_actual = int(demandas[i][j])
                print(f"Demanda de {origen} a {destino}: {num_demandas_actual} longitudes de onda")

                for _ in range(num_demandas_actual):
                    print(f"Calculando ruta ({demanda_actual}/{num_demandas})")
                    tiempo_inicio = time.time()
                    try:
                        resultado_ruta = ejecutar_algoritmo(grafo, origen, destino, algoritmo)
                        ruta = resultado_ruta['ruta']  # Extraer la lista de nodos
                        estado = 'OK'
                    except Exception as e:
                        ruta = []
                        estado = 'Fallo'
                        print(f"Error al calcular la ruta de {origen} a {destino}: {e}")

                    tiempo_final = time.time()
                    tiempo_calculo = tiempo_final - tiempo_inicio

                    # Imprimir la ruta calculada
                    #print(f"Ruta calculada: {ruta}")

                    distancia, atenuacion, osnr, retardo = evaluar_ruta(ruta, grafo)
                    
                    # Medir el uso de CPU con un intervalo definido
                    uso_cpu_inicio = psutil.cpu_percent(interval=None)
                    time.sleep(0.1)  # Esperar un pequeño intervalo para una medición precisa
                    uso_cpu = psutil.cpu_percent(interval=0.1) - uso_cpu_inicio
                    
                    uso_memoria = psutil.virtual_memory().used / (1024 ** 2)  # Convertir a MB

                    tiempo_total += tiempo_calculo
                    cpu_total += uso_cpu
                    memoria_total += uso_memoria

                    print(f"\nRuta ({demanda_actual}/{num_demandas}) de {origen} a {destino}: {ruta}")
                    print(f"Métricas: atenuación = {atenuacion}, OSNR = {osnr}")
                    print(f"Tiempo de cálculo: {round(tiempo_calculo, 7)} segundos")
                    print(f"Uso de CPU: {uso_cpu} %")
                    print(f"Uso de memoria: {uso_memoria} MB")

                    resultados.append({
                        'Id': demanda_actual,
                        'origen': origen,
                        'destino': destino,
                        'num_demandas': 1,
                        'ruta_primaria': ruta,
                        'distancia_primaria': distancia,
                        'atenuacion_primaria': atenuacion,
                        'osnr_primaria': osnr,
                        'retardo e2e primaria': retardo,
                        'ruta_secundaria': '',
                        'distancia_secundaria': '',
                        'atenuacion_secundaria': '',
                        'osnr_secundaria': '',
                        'retardo e2e secundaria': '',
                        'Tipo': 'U',
                        'Estado': estado,
                        'Tiempo': tiempo_calculo,
                        'CPU': uso_cpu,
                        'Memoria': uso_memoria
                    })
                    demanda_actual += 1

    # Guardar resultados en un DataFrame y CSV
    df_resultados = pd.DataFrame(resultados)
    csv_filename = f'RefNet3_rutas_{algoritmo}_{tipo_trafico}.csv'
    df_resultados.to_csv(csv_filename, index=False)
    print(f"\n\nFichero '{csv_filename}' generado correctamente")

    print(f"\nTiempo total de cálculo: {round(tiempo_total, 2)} segundos")
    print(f"Uso total de CPU: {round(cpu_total, 2)} %")
    print(f"Uso total de memoria: {round(memoria_total, 2)} MB")
    print(f"Tiempo promedio por demanda: {round(tiempo_total / num_demandas, 2)} segundos" if num_demandas > 0 else "Tiempo promedio por demanda: N/A")
    print(f"Uso promedio de CPU por demanda: {round(cpu_total / num_demandas, 2)} %" if num_demandas > 0 else "Uso promedio de CPU por demanda: N/A")
    print(f"Uso promedio de memoria por demanda: {round(memoria_total / num_demandas, 2)} MB" if num_demandas > 0 else "Uso promedio de memoria por demanda: N/A")

    if any(res['Estado'] == 'Fallo' for res in resultados):
        print("Errores en encaminamiento de rutas")
    else:
        print(f"\nEncaminamiento {algoritmo} de las demandas de la matriz {tipo_trafico} completado con éxito")
In [256]:
# Función que calcula el numero de canales primarios (y secundarios si el tráfico es protegido) DWDM por enlace
# ESta función es la misma que la que se ha usado en el caso de matrices de demandas de tráfico P (rutas disjuntas)
def calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo):
    # Inicializa un diccionario para contar los canales por enlace
    # El número máximo de canales es un parámetro y puede tomar 3 valores: 80, 96, 160.
    contadores_canales = {}

    # Inicializa un diccionario para contar los canales primarios y secundarios por enlace
    contadores_canales_primarios = {}
    contadores_canales_secundarios = {}

    # Itera sobre cada fila del df para contar los canales por enlace
    for i, row in df_resultados.iterrows():
        for ruta_col in ['ruta_primaria', 'ruta_secundaria']:
            ruta = row[ruta_col]
            if isinstance(ruta, list) and len(ruta) > 0:
                for j in range(len(ruta) - 1):
                    enlace = (ruta[j], ruta[j + 1])
                    if enlace not in contadores_canales:
                        contadores_canales[enlace] = 0
                    contadores_canales[enlace] += 1

                    if ruta_col == 'ruta_primaria':
                        if enlace not in contadores_canales_primarios:
                            contadores_canales_primarios[enlace] = 0
                        contadores_canales_primarios[enlace] += 1
                    elif ruta_col == 'ruta_secundaria':
                        if enlace not in contadores_canales_secundarios:
                            contadores_canales_secundarios[enlace] = 0
                        contadores_canales_secundarios[enlace] += 1

    # Genera el df con la ocupación de los canales DWDM
    data = []
    for enlace, num_canales in contadores_canales.items():
        num_canales_primarios = contadores_canales_primarios.get(enlace, 0)
        num_canales_secundarios = contadores_canales_secundarios.get(enlace, 0)
        ocupacion = (num_canales / num_ch_dwdm) * 100
        data.append([enlace[0], enlace[1], num_canales_primarios, num_canales_secundarios, num_canales, num_ch_dwdm, ocupacion])

    df_ocupacion_canales = pd.DataFrame(data, columns=['ROADM1', 'ROADM2', 'Num Canales Primarios', 'Num Canales Secundarios', 'Total Canales', 'Num Max CH DWDM', '%'])

    # Guarda el df en un archivo csv
    df_ocupacion_canales.to_csv(f'RefNet3_100U_{nombre_algoritmo}_nch_link.csv', index=False)

    # Muestra el df resultante
    print(df_ocupacion_canales)
In [257]:
# Se inicializan grafo de red y matriz de demandas de tráfico
grafo = grafo_red
matriz = 'RefNet3/RefNet3_TM_100U.csv'

Algoritmo Dijkstra | Matriz de tráfico 100G U | Rutas simples |

In [258]:
# Test de validación para una matriz no protegida (U)
# Algoritmo Dijkstra
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_dijkstra')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 0.1032228 segundos
Uso de CPU: 11.3 %
Uso de memoria: 8335.859375 MB
Calculando ruta (2/22)

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 0.1054931 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8368.390625 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 0.105665 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8368.390625 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 0.1051569 segundos
Uso de CPU: 16.9 %
Uso de memoria: 8352.359375 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 0.1057079 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8334.703125 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 0.105685 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8325.796875 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 0.101804 segundos
Uso de CPU: 10.8 %
Uso de memoria: 8348.5 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 0.1056278 segundos
Uso de CPU: 5.9 %
Uso de memoria: 8346.90625 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 0.1040518 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8353.3125 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)

Ruta (10/22) de 21 a 16: [21, 17, 13, 12, 14, 15, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 0.1056383 segundos
Uso de CPU: 14.6 %
Uso de memoria: 8367.671875 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 0.1056519 segundos
Uso de CPU: 14.1 %
Uso de memoria: 8371.390625 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)

Ruta (12/22) de 22 a 13: [22, 18, 15, 14, 12, 13]
Métricas: atenuación = 18.7, OSNR = 1
Tiempo de cálculo: 0.1034522 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8355.171875 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)

Ruta (13/22) de 23 a 4: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 34.9, OSNR = 3.8
Tiempo de cálculo: 0.1056221 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8354.578125 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)

Ruta (14/22) de 23 a 8: [23, 25, 22, 18, 15, 14, 10, 8]
Métricas: atenuación = 24.3, OSNR = 13.6
Tiempo de cálculo: 0.1021891 segundos
Uso de CPU: 16.9 %
Uso de memoria: 8354.578125 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 0.105557 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8347.5 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 0.10219 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8347.984375 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 0.1044233 segundos
Uso de CPU: 9.4 %
Uso de memoria: 8347.984375 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 0.103565 segundos
Uso de CPU: 31.2 %
Uso de memoria: 8306.71875 MB
Calculando ruta (19/22)

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 0.1048803 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8306.515625 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 0.102782 segundos
Uso de CPU: 17.5 %
Uso de memoria: 8307.390625 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)

Ruta (21/22) de 30 a 4: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 42.8, OSNR = 3.8
Tiempo de cálculo: 0.1059473 segundos
Uso de CPU: -77.8 %
Uso de memoria: 8307.390625 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 0.1011589 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8320.25 MB


Fichero 'RefNet3_rutas_calcula_ruta_dijkstra_100U.csv' generado correctamente

Tiempo total de cálculo: 2.3 segundos
Uso total de CPU: 70.8 %
Uso total de memoria: 183529.34 MB
Tiempo promedio por demanda: 0.1 segundos
Uso promedio de CPU por demanda: 3.22 %
Uso promedio de memoria por demanda: 8342.24 MB

Encaminamiento calcula_ruta_dijkstra de las demandas de la matriz 100U completado con éxito
In [259]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: Dijkstra

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_dijkstra_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el DataFrame
print("Verificando el formato de las rutas en el DataFrame...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'Dijkstra'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el DataFrame...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 17, 13, 12, 14, 15, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 17), (17, 13), (13, 12), (12, 14), (14, 15), (15, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 18, 15, 14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 12), (12, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 20), (20, 16), (16, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.
  colores = plt.cm.get_cmap('tab20', len(df)).colors
In [260]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: Dijkstra

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_dijkstra_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - Dijkstra 
nombre_algoritmo = 'Dijkstra'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [261]:
# Calcular la ocupacion (número de canales DWDM) por enlace - Dijkstra
nombre_algoritmo = 'dijkstra'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      2                        0   
4        7       5                      1                        0   
5        5       2                      1                        0   
6        2       1                      1                        0   
7        1       3                      1                        0   
8       10       9                      1                        0   
9       12      13                      3                        0   
10      13      11                      2                        0   
11      11       9                      2                        0   
12       9      10                      1                        0   
13      14      12                      2                        0   
14      19      13                      1                        0   
15      13      12                      2                        0   
16      21      17                      2                        0   
17      17      13                      2                        0   
18      12      14                      1                        0   
19      14      15                      1                        0   
20      15      18                      1                        0   
21      18      16                      2                        0   
22      22      18                      9                        0   
23      18      15                      6                        0   
24      15      14                      6                        0   
25      14      10                      4                        0   
26      10       8                      4                        0   
27      23      25                      3                        0   
28      25      22                      7                        0   
29       8       4                      2                        0   
30      24      21                      1                        0   
31      16      20                      1                        0   
32      30      20                      1                        0   
33      20      16                      1                        0   
34      16      18                      1                        0   
35      30      29                      1                        0   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               1               96  1.041667  
2               1               96  1.041667  
3               2               96  2.083333  
4               1               96  1.041667  
5               1               96  1.041667  
6               1               96  1.041667  
7               1               96  1.041667  
8               1               96  1.041667  
9               3               96  3.125000  
10              2               96  2.083333  
11              2               96  2.083333  
12              1               96  1.041667  
13              2               96  2.083333  
14              1               96  1.041667  
15              2               96  2.083333  
16              2               96  2.083333  
17              2               96  2.083333  
18              1               96  1.041667  
19              1               96  1.041667  
20              1               96  1.041667  
21              2               96  2.083333  
22              9               96  9.375000  
23              6               96  6.250000  
24              6               96  6.250000  
25              4               96  4.166667  
26              4               96  4.166667  
27              3               96  3.125000  
28              7               96  7.291667  
29              2               96  2.083333  
30              1               96  1.041667  
31              1               96  1.041667  
32              1               96  1.041667  
33              1               96  1.041667  
34              1               96  1.041667  
35              1               96  1.041667  

Algoritmo Bellman-Ford | Matriz de tráfico 100G U | Rutas simples |

In [262]:
# Test de validación para una matriz no protegida (U)
# Algoritmo Bellman-Ford
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_bellman_ford')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 0.0004609 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8289.859375 MB
Calculando ruta (2/22)

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 0.0005319 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8374.75 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 0.0004609 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8373.671875 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 0.0006001 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8372.078125 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 0.0006962 segundos
Uso de CPU: 11.8 %
Uso de memoria: 8371.234375 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 0.0005531 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8370.75 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 0.0006831 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8373.34375 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 0.0004981 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8360.140625 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 0.0003531 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8362.359375 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)

Ruta (10/22) de 21 a 16: [21, 24, 26, 23, 25, 22, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 0.0006621 segundos
Uso de CPU: 12.6 %
Uso de memoria: 8372.40625 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 0.0007288 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8372.046875 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)

Ruta (12/22) de 22 a 13: [22, 18, 15, 14, 12, 13]
Métricas: atenuación = 18.7, OSNR = 1
Tiempo de cálculo: 0.0005581 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8372.046875 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)

Ruta (13/22) de 23 a 4: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 34.9, OSNR = 3.8
Tiempo de cálculo: 0.0007241 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8372.046875 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)

Ruta (14/22) de 23 a 8: [23, 25, 22, 18, 15, 14, 10, 8]
Métricas: atenuación = 24.3, OSNR = 13.6
Tiempo de cálculo: 0.00071 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8372.046875 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 0.000385 segundos
Uso de CPU: 13.9 %
Uso de memoria: 8364.421875 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 0.000634 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8363.265625 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 0.0004411 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8362.96875 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 0.0007081 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8362.96875 MB
Calculando ruta (19/22)

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 0.0006351 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8362.96875 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 0.0005839 segundos
Uso de CPU: 10.9 %
Uso de memoria: 8354.9375 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)

Ruta (21/22) de 30 a 4: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 42.8, OSNR = 3.8
Tiempo de cálculo: 0.000828 segundos
Uso de CPU: 16.7 %
Uso de memoria: 8355.28125 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 0.000556 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8353.4375 MB


Fichero 'RefNet3_rutas_calcula_ruta_bellman_ford_100U.csv' generado correctamente

Tiempo total de cálculo: 0.01 segundos
Uso total de CPU: 65.9 %
Uso total de memoria: 183989.03 MB
Tiempo promedio por demanda: 0.0 segundos
Uso promedio de CPU por demanda: 3.0 %
Uso promedio de memoria por demanda: 8363.14 MB

Encaminamiento calcula_ruta_bellman_ford de las demandas de la matriz 100U completado con éxito
In [263]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: Bellman-Ford

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_bellman_ford_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el DataFrame
print("Verificando el formato de las rutas en el df ...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'Bellman-Ford'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el df ...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 24, 26, 23, 25, 22, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 24), (24, 26), (26, 23), (23, 25), (25, 22), (22, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 18, 15, 14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 12), (12, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 20), (20, 16), (16, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [264]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: Bellman-Ford

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_bellman_ford_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - Bellman-Ford 
nombre_algoritmo = 'Bellman-Ford'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [265]:
# Calcular la ocupacion (número de canales DWDM) por enlace - Bellman-Ford
nombre_algoritmo = 'bellman_ford'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      2                        0   
4        7       5                      1                        0   
5        5       2                      1                        0   
6        2       1                      1                        0   
7        1       3                      1                        0   
8       10       9                      1                        0   
9       12      13                      3                        0   
10      13      11                      2                        0   
11      11       9                      2                        0   
12       9      10                      1                        0   
13      14      12                      2                        0   
14      19      13                      1                        0   
15      13      12                      1                        0   
16      21      24                      1                        0   
17      24      26                      1                        0   
18      26      23                      1                        0   
19      23      25                      4                        0   
20      25      22                      8                        0   
21      22      18                     10                        0   
22      18      16                      2                        0   
23      18      15                      6                        0   
24      15      14                      6                        0   
25      14      10                      4                        0   
26      10       8                      4                        0   
27       8       4                      2                        0   
28      24      21                      1                        0   
29      21      17                      1                        0   
30      17      13                      1                        0   
31      16      20                      1                        0   
32      30      20                      1                        0   
33      20      16                      1                        0   
34      16      18                      1                        0   
35      30      29                      1                        0   

    Total Canales  Num Max CH DWDM          %  
0               2               96   2.083333  
1               1               96   1.041667  
2               1               96   1.041667  
3               2               96   2.083333  
4               1               96   1.041667  
5               1               96   1.041667  
6               1               96   1.041667  
7               1               96   1.041667  
8               1               96   1.041667  
9               3               96   3.125000  
10              2               96   2.083333  
11              2               96   2.083333  
12              1               96   1.041667  
13              2               96   2.083333  
14              1               96   1.041667  
15              1               96   1.041667  
16              1               96   1.041667  
17              1               96   1.041667  
18              1               96   1.041667  
19              4               96   4.166667  
20              8               96   8.333333  
21             10               96  10.416667  
22              2               96   2.083333  
23              6               96   6.250000  
24              6               96   6.250000  
25              4               96   4.166667  
26              4               96   4.166667  
27              2               96   2.083333  
28              1               96   1.041667  
29              1               96   1.041667  
30              1               96   1.041667  
31              1               96   1.041667  
32              1               96   1.041667  
33              1               96   1.041667  
34              1               96   1.041667  
35              1               96   1.041667  

Algoritmo A(*) heurística Euclídea | Matriz de tráfico 100G U | Rutas simples |

In [266]:
# Test de validación para una matriz no protegida (U)
# Algoritmo A* heurística Euclídea
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_a_star_euclidea')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 0.0002279 segundos
Uso de CPU: 6.0 %
Uso de memoria: 8362.640625 MB
Calculando ruta (2/22)

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 0.0003729 segundos
Uso de CPU: 4.7 %
Uso de memoria: 8371.984375 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 0.000376 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8371.984375 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 0.0004563 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8371.984375 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 0.0004013 segundos
Uso de CPU: 10.1 %
Uso de memoria: 8358.484375 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 0.00033 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8357.6875 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 0.0003998 segundos
Uso de CPU: 3.9 %
Uso de memoria: 8357.6875 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 0.0004363 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8357.6875 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 0.0002968 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8357.6875 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)

Ruta (10/22) de 21 a 16: [21, 17, 13, 12, 14, 15, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 0.0004463 segundos
Uso de CPU: 13.0 %
Uso de memoria: 8359.40625 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 0.0002761 segundos
Uso de CPU: 17.2 %
Uso de memoria: 8355.171875 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)

Ruta (12/22) de 22 a 13: [22, 18, 15, 14, 12, 13]
Métricas: atenuación = 18.7, OSNR = 1
Tiempo de cálculo: 0.0006449 segundos
Uso de CPU: 11.1 %
Uso de memoria: 8355.21875 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)

Ruta (13/22) de 23 a 4: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 34.9, OSNR = 3.8
Tiempo de cálculo: 0.0004222 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8355.21875 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)

Ruta (14/22) de 23 a 8: [23, 25, 22, 18, 15, 14, 10, 8]
Métricas: atenuación = 24.3, OSNR = 13.6
Tiempo de cálculo: 0.000608 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8355.21875 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 0.000288 segundos
Uso de CPU: 12.2 %
Uso de memoria: 8331.109375 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 0.0004859 segundos
Uso de CPU: -100.0 %
Uso de memoria: 8328.296875 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 0.0002601 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8324.5 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 0.0002561 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8322.421875 MB
Calculando ruta (19/22)

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 0.0004201 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8321.796875 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 0.0004461 segundos
Uso de CPU: 11.7 %
Uso de memoria: 8322.78125 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)

Ruta (21/22) de 30 a 4: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 42.8, OSNR = 3.8
Tiempo de cálculo: 0.000478 segundos
Uso de CPU: 16.3 %
Uso de memoria: 8319.203125 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 0.000236 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8319.203125 MB


Fichero 'RefNet3_rutas_calcula_ruta_a_star_euclidea_100U.csv' generado correctamente

Tiempo total de cálculo: 0.01 segundos
Uso total de CPU: 9.9 %
Uso total de memoria: 183637.38 MB
Tiempo promedio por demanda: 0.0 segundos
Uso promedio de CPU por demanda: 0.45 %
Uso promedio de memoria por demanda: 8347.15 MB

Encaminamiento calcula_ruta_a_star_euclidea de las demandas de la matriz 100U completado con éxito
In [267]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: A* heurística Euclídea

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_a_star_euclidea_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el DataFrame
print("Verificando el formato de las rutas en el df ...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'A* heurística Euclídea'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el df ...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 17, 13, 12, 14, 15, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 17), (17, 13), (13, 12), (12, 14), (14, 15), (15, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 18, 15, 14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 12), (12, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 20), (20, 16), (16, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [268]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: A* heurística euclídea

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_a_star_euclidea_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - A* heurística ecuclídea
nombre_algoritmo = 'A* heurística euclídea'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [269]:
# Calcular la ocupacion (número de canales DWDM) por enlace - A* heurística 
nombre_algoritmo = 'a_star_euclidea'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      2                        0   
4        7       5                      1                        0   
5        5       2                      1                        0   
6        2       1                      1                        0   
7        1       3                      1                        0   
8       10       9                      1                        0   
9       12      13                      3                        0   
10      13      11                      2                        0   
11      11       9                      2                        0   
12       9      10                      1                        0   
13      14      12                      2                        0   
14      19      13                      1                        0   
15      13      12                      2                        0   
16      21      17                      2                        0   
17      17      13                      2                        0   
18      12      14                      1                        0   
19      14      15                      1                        0   
20      15      18                      1                        0   
21      18      16                      2                        0   
22      22      18                      9                        0   
23      18      15                      6                        0   
24      15      14                      6                        0   
25      14      10                      4                        0   
26      10       8                      4                        0   
27      23      25                      3                        0   
28      25      22                      7                        0   
29       8       4                      2                        0   
30      24      21                      1                        0   
31      16      20                      1                        0   
32      30      20                      1                        0   
33      20      16                      1                        0   
34      16      18                      1                        0   
35      30      29                      1                        0   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               1               96  1.041667  
2               1               96  1.041667  
3               2               96  2.083333  
4               1               96  1.041667  
5               1               96  1.041667  
6               1               96  1.041667  
7               1               96  1.041667  
8               1               96  1.041667  
9               3               96  3.125000  
10              2               96  2.083333  
11              2               96  2.083333  
12              1               96  1.041667  
13              2               96  2.083333  
14              1               96  1.041667  
15              2               96  2.083333  
16              2               96  2.083333  
17              2               96  2.083333  
18              1               96  1.041667  
19              1               96  1.041667  
20              1               96  1.041667  
21              2               96  2.083333  
22              9               96  9.375000  
23              6               96  6.250000  
24              6               96  6.250000  
25              4               96  4.166667  
26              4               96  4.166667  
27              3               96  3.125000  
28              7               96  7.291667  
29              2               96  2.083333  
30              1               96  1.041667  
31              1               96  1.041667  
32              1               96  1.041667  
33              1               96  1.041667  
34              1               96  1.041667  
35              1               96  1.041667  

Algoritmo Algoritmo Génetico Optimizado | Matriz de tráfico 100G U | Rutas simples |

In [270]:
# Test de validación para una matriz no protegida (U)
# Algoritmo GA optimizado
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_ga_opt')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)
Generación inicial: [[8, 3], [8, 4, 3], [8, 4, 3], [8, 3], [8, 3], [8, 3], [8, 6, 7, 5, 2, 1, 3], [8, 3], [8, 3], [8, 4, 3]]
Generación 1/50
Población de la generación 1: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 2/50
Población de la generación 2: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 3/50
Población de la generación 3: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 4/50
Población de la generación 4: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 5/50
Población de la generación 5: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 6/50
Población de la generación 6: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 7/50
Población de la generación 7: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 8/50
Población de la generación 8: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 9/50
Población de la generación 9: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 10/50
Población de la generación 10: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 11/50
Población de la generación 11: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 12/50
Población de la generación 12: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 13/50
Población de la generación 13: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 14/50
Población de la generación 14: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 15/50
Población de la generación 15: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 16/50
Población de la generación 16: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 17/50
Población de la generación 17: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 18/50
Población de la generación 18: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 19/50
Población de la generación 19: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 20/50
Población de la generación 20: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 21/50
Población de la generación 21: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 22/50
Población de la generación 22: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 23/50
Población de la generación 23: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 24/50
Población de la generación 24: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 25/50
Población de la generación 25: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 26/50
Población de la generación 26: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 27/50
Población de la generación 27: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 28/50
Población de la generación 28: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 29/50
Población de la generación 29: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 30/50
Población de la generación 30: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 31/50
Población de la generación 31: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 32/50
Población de la generación 32: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 33/50
Población de la generación 33: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 34/50
Población de la generación 34: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 35/50
Población de la generación 35: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 36/50
Población de la generación 36: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 37/50
Población de la generación 37: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 38/50
Población de la generación 38: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 39/50
Población de la generación 39: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 40/50
Población de la generación 40: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 41/50
Población de la generación 41: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 42/50
Población de la generación 42: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 43/50
Población de la generación 43: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 44/50
Población de la generación 44: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 45/50
Población de la generación 45: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 46/50
Población de la generación 46: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 47/50
Población de la generación 47: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 48/50
Población de la generación 48: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 49/50
Población de la generación 49: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 50/50
Población de la generación 50: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.0529251 segundos
Uso de CPU: 16.5 %
Uso de memoria: 8291.234375 MB
Calculando ruta (2/22)
Generación inicial: [[8, 3], [8, 4, 3], [8, 3], [8, 4, 3], [8, 3], [8, 4, 3], [8, 4, 3], [8, 3], [8, 4, 3], [8, 3]]
Generación 1/50
Población de la generación 1: [[8, 4, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 4, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 2/50
Población de la generación 2: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 3/50
Población de la generación 3: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 4/50
Población de la generación 4: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 5/50
Población de la generación 5: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 6/50
Población de la generación 6: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 7/50
Población de la generación 7: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 8/50
Población de la generación 8: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 9/50
Población de la generación 9: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 10/50
Población de la generación 10: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 11/50
Población de la generación 11: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 12/50
Población de la generación 12: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 13/50
Población de la generación 13: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 14/50
Población de la generación 14: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 15/50
Población de la generación 15: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 16/50
Población de la generación 16: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 17/50
Población de la generación 17: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 18/50
Población de la generación 18: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 19/50
Población de la generación 19: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 20/50
Población de la generación 20: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 21/50
Población de la generación 21: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 22/50
Población de la generación 22: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 23/50
Población de la generación 23: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 24/50
Población de la generación 24: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 25/50
Población de la generación 25: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 26/50
Población de la generación 26: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 27/50
Población de la generación 27: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 28/50
Población de la generación 28: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 29/50
Población de la generación 29: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 30/50
Población de la generación 30: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 31/50
Población de la generación 31: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 32/50
Población de la generación 32: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 33/50
Población de la generación 33: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 34/50
Población de la generación 34: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 35/50
Población de la generación 35: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 36/50
Población de la generación 36: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 37/50
Población de la generación 37: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 38/50
Población de la generación 38: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 39/50
Población de la generación 39: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 40/50
Población de la generación 40: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 41/50
Población de la generación 41: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 42/50
Población de la generación 42: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 43/50
Población de la generación 43: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 44/50
Población de la generación 44: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 45/50
Población de la generación 45: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 46/50
Población de la generación 46: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 47/50
Población de la generación 47: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 48/50
Población de la generación 48: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 49/50
Población de la generación 49: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 50/50
Población de la generación 50: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.0569947 segundos
Uso de CPU: 11.6 %
Uso de memoria: 8261.0625 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)
Generación inicial: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 4, 3, 1, 2, 5, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 10, 9, 7]]
Generación 1/50
Población de la generación 1: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 2/50
Población de la generación 2: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 3/50
Población de la generación 3: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 4/50
Población de la generación 4: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 5/50
Población de la generación 5: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 6/50
Población de la generación 6: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 7/50
Población de la generación 7: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 8/50
Población de la generación 8: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 9/50
Población de la generación 9: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 10/50
Población de la generación 10: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 11/50
Población de la generación 11: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 12/50
Población de la generación 12: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 13/50
Población de la generación 13: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 14/50
Población de la generación 14: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 15/50
Población de la generación 15: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 16/50
Población de la generación 16: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 17/50
Población de la generación 17: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 18/50
Población de la generación 18: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 19/50
Población de la generación 19: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 20/50
Población de la generación 20: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 21/50
Población de la generación 21: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 22/50
Población de la generación 22: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 23/50
Población de la generación 23: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 24/50
Población de la generación 24: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 25/50
Población de la generación 25: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 26/50
Población de la generación 26: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 27/50
Población de la generación 27: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 28/50
Población de la generación 28: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 29/50
Población de la generación 29: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 30/50
Población de la generación 30: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 31/50
Población de la generación 31: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 32/50
Población de la generación 32: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 33/50
Población de la generación 33: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 34/50
Población de la generación 34: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 35/50
Población de la generación 35: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 36/50
Población de la generación 36: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 37/50
Población de la generación 37: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 38/50
Población de la generación 38: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 39/50
Población de la generación 39: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 40/50
Población de la generación 40: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 41/50
Población de la generación 41: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 42/50
Población de la generación 42: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 43/50
Población de la generación 43: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 44/50
Población de la generación 44: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 45/50
Población de la generación 45: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 46/50
Población de la generación 46: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 47/50
Población de la generación 47: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 48/50
Población de la generación 48: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 49/50
Población de la generación 49: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)
Generación 50/50
Población de la generación 50: [[8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7], [8, 6, 7]]
Mejor ruta hasta ahora: [8, 6, 7] con evaluación (220.0, 11.6, 1, 1.5)

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 1.0675831 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8223.421875 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)
Generación inicial: [[9, 10, 8, 3], [9, 10, 8, 3], [9, 7, 5, 2, 1, 3], [9, 10, 8, 3], [9, 7, 6, 8, 4, 3], [9, 10, 8, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 10, 8, 3], [9, 10, 8, 3]]
Generación 1/50
Población de la generación 1: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 2/50
Población de la generación 2: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 3/50
Población de la generación 3: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 4/50
Población de la generación 4: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 5/50
Población de la generación 5: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 6/50
Población de la generación 6: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 7/50
Población de la generación 7: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 8/50
Población de la generación 8: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 9/50
Población de la generación 9: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 10/50
Población de la generación 10: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 11/50
Población de la generación 11: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 12/50
Población de la generación 12: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 13/50
Población de la generación 13: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 14/50
Población de la generación 14: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 15/50
Población de la generación 15: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 16/50
Población de la generación 16: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 17/50
Población de la generación 17: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 18/50
Población de la generación 18: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 19/50
Población de la generación 19: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 20/50
Población de la generación 20: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 21/50
Población de la generación 21: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 22/50
Población de la generación 22: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 23/50
Población de la generación 23: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 24/50
Población de la generación 24: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 25/50
Población de la generación 25: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 26/50
Población de la generación 26: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 27/50
Población de la generación 27: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 28/50
Población de la generación 28: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 29/50
Población de la generación 29: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 30/50
Población de la generación 30: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 31/50
Población de la generación 31: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 32/50
Población de la generación 32: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 33/50
Población de la generación 33: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 34/50
Población de la generación 34: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 35/50
Población de la generación 35: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 36/50
Población de la generación 36: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 37/50
Población de la generación 37: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 38/50
Población de la generación 38: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 39/50
Población de la generación 39: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 40/50
Población de la generación 40: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 41/50
Población de la generación 41: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 42/50
Población de la generación 42: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 43/50
Población de la generación 43: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 44/50
Población de la generación 44: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 45/50
Población de la generación 45: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 46/50
Población de la generación 46: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 47/50
Población de la generación 47: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 48/50
Población de la generación 48: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 49/50
Población de la generación 49: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 50/50
Población de la generación 50: [[9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3], [9, 7, 5, 2, 1, 3]]
Mejor ruta hasta ahora: [9, 7, 5, 2, 1, 3] con evaluación (350.0, 18.9, 13.6, 2.8)

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.0830519 segundos
Uso de CPU: 11.0 %
Uso de memoria: 8251.96875 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)
Generación inicial: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Generación 1/50
Población de la generación 1: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 2/50
Población de la generación 2: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 3/50
Población de la generación 3: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 4/50
Población de la generación 4: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 5/50
Población de la generación 5: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 6/50
Población de la generación 6: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 7/50
Población de la generación 7: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 8/50
Población de la generación 8: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 9/50
Población de la generación 9: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 10/50
Población de la generación 10: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 11/50
Población de la generación 11: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 12/50
Población de la generación 12: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 13/50
Población de la generación 13: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 14/50
Población de la generación 14: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 15/50
Población de la generación 15: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 16/50
Población de la generación 16: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 17/50
Población de la generación 17: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 18/50
Población de la generación 18: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 19/50
Población de la generación 19: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 20/50
Población de la generación 20: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 21/50
Población de la generación 21: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 22/50
Población de la generación 22: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 23/50
Población de la generación 23: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 24/50
Población de la generación 24: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 25/50
Población de la generación 25: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 26/50
Población de la generación 26: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 27/50
Población de la generación 27: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 28/50
Población de la generación 28: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 29/50
Población de la generación 29: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 30/50
Población de la generación 30: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 31/50
Población de la generación 31: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 32/50
Población de la generación 32: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 33/50
Población de la generación 33: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 34/50
Población de la generación 34: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 35/50
Población de la generación 35: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 36/50
Población de la generación 36: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 37/50
Población de la generación 37: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 38/50
Población de la generación 38: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 39/50
Población de la generación 39: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 40/50
Población de la generación 40: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 41/50
Población de la generación 41: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 42/50
Población de la generación 42: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 43/50
Población de la generación 43: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 44/50
Población de la generación 44: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 45/50
Población de la generación 45: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 46/50
Población de la generación 46: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 47/50
Población de la generación 47: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 48/50
Población de la generación 48: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 49/50
Población de la generación 49: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 50/50
Población de la generación 50: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 1.062731 segundos
Uso de CPU: 12.5 %
Uso de memoria: 8253.265625 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)
Generación inicial: [[12, 13, 11, 9, 7], [12, 14, 10, 9, 7], [12, 13, 11, 9, 10, 8, 6, 7], [12, 13, 11, 9, 7], [12, 14, 10, 9, 7], [12, 14, 10, 8, 6, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 14, 10, 9, 7], [12, 14, 10, 9, 7]]
Generación 1/50
Población de la generación 1: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 2/50
Población de la generación 2: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 3/50
Población de la generación 3: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 4/50
Población de la generación 4: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 5/50
Población de la generación 5: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 6/50
Población de la generación 6: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 7/50
Población de la generación 7: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 8/50
Población de la generación 8: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 9/50
Población de la generación 9: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 10/50
Población de la generación 10: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 11/50
Población de la generación 11: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 12/50
Población de la generación 12: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 13/50
Población de la generación 13: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 14/50
Población de la generación 14: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 15/50
Población de la generación 15: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 16/50
Población de la generación 16: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 17/50
Población de la generación 17: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 18/50
Población de la generación 18: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 19/50
Población de la generación 19: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 20/50
Población de la generación 20: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 21/50
Población de la generación 21: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 22/50
Población de la generación 22: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 23/50
Población de la generación 23: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 24/50
Población de la generación 24: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 25/50
Población de la generación 25: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 26/50
Población de la generación 26: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 27/50
Población de la generación 27: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 28/50
Población de la generación 28: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 29/50
Población de la generación 29: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 30/50
Población de la generación 30: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 31/50
Población de la generación 31: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 32/50
Población de la generación 32: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 33/50
Población de la generación 33: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 34/50
Población de la generación 34: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 35/50
Población de la generación 35: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 36/50
Población de la generación 36: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 37/50
Población de la generación 37: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 38/50
Población de la generación 38: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 39/50
Población de la generación 39: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 40/50
Población de la generación 40: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 41/50
Población de la generación 41: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 42/50
Población de la generación 42: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 43/50
Población de la generación 43: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 44/50
Población de la generación 44: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 45/50
Población de la generación 45: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 46/50
Población de la generación 46: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 47/50
Población de la generación 47: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 48/50
Población de la generación 48: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 49/50
Población de la generación 49: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 50/50
Población de la generación 50: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 1.0774159 segundos
Uso de CPU: 10.8 %
Uso de memoria: 8238.78125 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)
Generación inicial: [[13, 12, 14, 10], [13, 12, 14, 10], [13, 12, 14, 10], [13, 11, 9, 10], [13, 12, 14, 10], [13, 19, 23, 25, 22, 18, 15, 14, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 12, 14, 10], [13, 11, 9, 10]]
Generación 1/50
Población de la generación 1: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 2/50
Población de la generación 2: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 3/50
Población de la generación 3: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 4/50
Población de la generación 4: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 5/50
Población de la generación 5: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 6/50
Población de la generación 6: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 7/50
Población de la generación 7: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 8/50
Población de la generación 8: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 9/50
Población de la generación 9: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 10/50
Población de la generación 10: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 11/50
Población de la generación 11: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 12/50
Población de la generación 12: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 13/50
Población de la generación 13: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 14/50
Población de la generación 14: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 15/50
Población de la generación 15: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 16/50
Población de la generación 16: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 17/50
Población de la generación 17: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 18/50
Población de la generación 18: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 19/50
Población de la generación 19: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 20/50
Población de la generación 20: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 21/50
Población de la generación 21: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 22/50
Población de la generación 22: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 23/50
Población de la generación 23: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 24/50
Población de la generación 24: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 25/50
Población de la generación 25: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 26/50
Población de la generación 26: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 27/50
Población de la generación 27: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 28/50
Población de la generación 28: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 29/50
Población de la generación 29: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 30/50
Población de la generación 30: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 31/50
Población de la generación 31: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 32/50
Población de la generación 32: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 33/50
Población de la generación 33: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 34/50
Población de la generación 34: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 35/50
Población de la generación 35: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 36/50
Población de la generación 36: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 37/50
Población de la generación 37: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 38/50
Población de la generación 38: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 39/50
Población de la generación 39: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 40/50
Población de la generación 40: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 41/50
Población de la generación 41: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 42/50
Población de la generación 42: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 43/50
Población de la generación 43: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 44/50
Población de la generación 44: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 45/50
Población de la generación 45: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 46/50
Población de la generación 46: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 47/50
Población de la generación 47: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 48/50
Población de la generación 48: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 49/50
Población de la generación 49: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)
Generación 50/50
Población de la generación 50: [[13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10], [13, 11, 9, 10]]
Mejor ruta hasta ahora: [13, 11, 9, 10] con evaluación (250.0, 13.3, 1, 1.8)

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 1.069699 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8248.71875 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)
Generación inicial: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Generación 1/50
Población de la generación 1: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 2/50
Población de la generación 2: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 3/50
Población de la generación 3: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 4/50
Población de la generación 4: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 5/50
Población de la generación 5: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 6/50
Población de la generación 6: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 7/50
Población de la generación 7: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 8/50
Población de la generación 8: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 9/50
Población de la generación 9: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 10/50
Población de la generación 10: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 11/50
Población de la generación 11: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 12/50
Población de la generación 12: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 13/50
Población de la generación 13: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 14/50
Población de la generación 14: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 15/50
Población de la generación 15: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 16/50
Población de la generación 16: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 17/50
Población de la generación 17: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 18/50
Población de la generación 18: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 19/50
Población de la generación 19: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 20/50
Población de la generación 20: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 21/50
Población de la generación 21: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 22/50
Población de la generación 22: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 23/50
Población de la generación 23: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 24/50
Población de la generación 24: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 25/50
Población de la generación 25: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 26/50
Población de la generación 26: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 27/50
Población de la generación 27: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 28/50
Población de la generación 28: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 29/50
Población de la generación 29: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 30/50
Población de la generación 30: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 31/50
Población de la generación 31: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 32/50
Población de la generación 32: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 33/50
Población de la generación 33: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 34/50
Población de la generación 34: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 35/50
Población de la generación 35: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 36/50
Población de la generación 36: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 37/50
Población de la generación 37: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 38/50
Población de la generación 38: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 39/50
Población de la generación 39: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 40/50
Población de la generación 40: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 41/50
Población de la generación 41: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 42/50
Población de la generación 42: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 43/50
Población de la generación 43: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 44/50
Población de la generación 44: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 45/50
Población de la generación 45: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 46/50
Población de la generación 46: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 47/50
Población de la generación 47: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 48/50
Población de la generación 48: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 49/50
Población de la generación 49: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 50/50
Población de la generación 50: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 1.065515 segundos
Uso de CPU: 10.7 %
Uso de memoria: 8239.203125 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)
Generación inicial: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 11, 9, 7, 6, 8, 10, 14, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Generación 1/50
Población de la generación 1: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 2/50
Población de la generación 2: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 3/50
Población de la generación 3: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 4/50
Población de la generación 4: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 5/50
Población de la generación 5: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 6/50
Población de la generación 6: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 7/50
Población de la generación 7: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 8/50
Población de la generación 8: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 9/50
Población de la generación 9: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 10/50
Población de la generación 10: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 11/50
Población de la generación 11: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 12/50
Población de la generación 12: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 13/50
Población de la generación 13: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 14/50
Población de la generación 14: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 15/50
Población de la generación 15: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 16/50
Población de la generación 16: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 17/50
Población de la generación 17: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 18/50
Población de la generación 18: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 19/50
Población de la generación 19: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 20/50
Población de la generación 20: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 21/50
Población de la generación 21: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 22/50
Población de la generación 22: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 23/50
Población de la generación 23: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 24/50
Población de la generación 24: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 25/50
Población de la generación 25: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 26/50
Población de la generación 26: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 27/50
Población de la generación 27: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 28/50
Población de la generación 28: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 29/50
Población de la generación 29: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 30/50
Población de la generación 30: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 31/50
Población de la generación 31: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 32/50
Población de la generación 32: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 33/50
Población de la generación 33: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 34/50
Población de la generación 34: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 35/50
Población de la generación 35: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 36/50
Población de la generación 36: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 37/50
Población de la generación 37: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 38/50
Población de la generación 38: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 39/50
Población de la generación 39: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 40/50
Población de la generación 40: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 41/50
Población de la generación 41: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 42/50
Población de la generación 42: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 43/50
Población de la generación 43: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 44/50
Población de la generación 44: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 45/50
Población de la generación 45: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 46/50
Población de la generación 46: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 47/50
Población de la generación 47: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 48/50
Población de la generación 48: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 49/50
Población de la generación 49: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)
Generación 50/50
Población de la generación 50: [[19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12], [19, 13, 12]]
Mejor ruta hasta ahora: [19, 13, 12] con evaluación (250.0, 13.3, 3.8, 1.6)

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 1.0749989 segundos
Uso de CPU: 7.1 %
Uso de memoria: 8230.578125 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)
Generación inicial: [[21, 17, 13, 12, 14, 15, 18, 16], [21, 17, 13, 12, 14, 15, 18, 16], [21, 17, 13, 12, 14, 15, 18, 16], [21, 17, 13, 12, 14, 15, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Generación 1/50
Población de la generación 1: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 17, 13, 12, 14, 15, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 17, 13, 12, 14, 15, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 2/50
Población de la generación 2: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 3/50
Población de la generación 3: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 4/50
Población de la generación 4: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 5/50
Población de la generación 5: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 6/50
Población de la generación 6: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 7/50
Población de la generación 7: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 8/50
Población de la generación 8: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 9/50
Población de la generación 9: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 10/50
Población de la generación 10: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 11/50
Población de la generación 11: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 12/50
Población de la generación 12: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 13/50
Población de la generación 13: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 14/50
Población de la generación 14: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 15/50
Población de la generación 15: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 16/50
Población de la generación 16: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 17/50
Población de la generación 17: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 18/50
Población de la generación 18: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 19/50
Población de la generación 19: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 20/50
Población de la generación 20: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 21/50
Población de la generación 21: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 22/50
Población de la generación 22: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 23/50
Población de la generación 23: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 24/50
Población de la generación 24: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 25/50
Población de la generación 25: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 26/50
Población de la generación 26: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 27/50
Población de la generación 27: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 28/50
Población de la generación 28: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 29/50
Población de la generación 29: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 30/50
Población de la generación 30: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 31/50
Población de la generación 31: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 32/50
Población de la generación 32: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 33/50
Población de la generación 33: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 34/50
Población de la generación 34: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 35/50
Población de la generación 35: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 36/50
Población de la generación 36: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 37/50
Población de la generación 37: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 38/50
Población de la generación 38: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 39/50
Población de la generación 39: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 40/50
Población de la generación 40: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 41/50
Población de la generación 41: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 42/50
Población de la generación 42: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 43/50
Población de la generación 43: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 44/50
Población de la generación 44: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 45/50
Población de la generación 45: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 46/50
Población de la generación 46: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 47/50
Población de la generación 47: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 48/50
Población de la generación 48: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 49/50
Población de la generación 49: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)
Generación 50/50
Población de la generación 50: [[21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16], [21, 24, 26, 23, 25, 22, 18, 16]]
Mejor ruta hasta ahora: [21, 17, 13, 12, 14, 15, 18, 16] con evaluación (450.0, 24.1, 1, 3.6)

Ruta (10/22) de 21 a 16: [21, 17, 13, 12, 14, 15, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 1.087075 segundos
Uso de CPU: 11.9 %
Uso de memoria: 8213.125 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)
Generación inicial: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 25, 23, 19, 13, 12, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Generación 1/50
Población de la generación 1: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 2/50
Población de la generación 2: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 3/50
Población de la generación 3: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 4/50
Población de la generación 4: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 5/50
Población de la generación 5: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 6/50
Población de la generación 6: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 7/50
Población de la generación 7: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 8/50
Población de la generación 8: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 9/50
Población de la generación 9: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 10/50
Población de la generación 10: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 11/50
Población de la generación 11: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 12/50
Población de la generación 12: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 13/50
Población de la generación 13: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 14/50
Población de la generación 14: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 15/50
Población de la generación 15: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 16/50
Población de la generación 16: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 17/50
Población de la generación 17: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 18/50
Población de la generación 18: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 19/50
Población de la generación 19: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 20/50
Población de la generación 20: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 21/50
Población de la generación 21: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 22/50
Población de la generación 22: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 23/50
Población de la generación 23: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 24/50
Población de la generación 24: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 25/50
Población de la generación 25: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 26/50
Población de la generación 26: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 27/50
Población de la generación 27: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 28/50
Población de la generación 28: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 29/50
Población de la generación 29: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 30/50
Población de la generación 30: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 31/50
Población de la generación 31: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 32/50
Población de la generación 32: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 33/50
Población de la generación 33: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 34/50
Población de la generación 34: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 35/50
Población de la generación 35: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 36/50
Población de la generación 36: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 37/50
Población de la generación 37: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 38/50
Población de la generación 38: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 39/50
Población de la generación 39: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 40/50
Población de la generación 40: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 41/50
Población de la generación 41: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 42/50
Población de la generación 42: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 43/50
Población de la generación 43: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 44/50
Población de la generación 44: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 45/50
Población de la generación 45: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 46/50
Población de la generación 46: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 47/50
Población de la generación 47: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 48/50
Población de la generación 48: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 49/50
Población de la generación 49: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 50/50
Población de la generación 50: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.085371 segundos
Uso de CPU: 8.3 %
Uso de memoria: 8209.234375 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)
Generación inicial: [[22, 25, 23, 19, 13], [22, 25, 23, 26, 24, 21, 17, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 26, 24, 21, 17, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Generación 1/50
Población de la generación 1: [[22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 18, 15, 14, 12, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 2/50
Población de la generación 2: [[22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 3/50
Población de la generación 3: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 4/50
Población de la generación 4: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 5/50
Población de la generación 5: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 6/50
Población de la generación 6: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 7/50
Población de la generación 7: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 8/50
Población de la generación 8: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 9/50
Población de la generación 9: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 10/50
Población de la generación 10: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 11/50
Población de la generación 11: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 12/50
Población de la generación 12: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 13/50
Población de la generación 13: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 14/50
Población de la generación 14: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 15/50
Población de la generación 15: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 16/50
Población de la generación 16: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 17/50
Población de la generación 17: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 18/50
Población de la generación 18: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 19/50
Población de la generación 19: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 20/50
Población de la generación 20: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 21/50
Población de la generación 21: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 22/50
Población de la generación 22: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 23/50
Población de la generación 23: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 24/50
Población de la generación 24: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 25/50
Población de la generación 25: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 26/50
Población de la generación 26: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 27/50
Población de la generación 27: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 28/50
Población de la generación 28: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 29/50
Población de la generación 29: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 30/50
Población de la generación 30: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 31/50
Población de la generación 31: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 32/50
Población de la generación 32: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 33/50
Población de la generación 33: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 34/50
Población de la generación 34: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 35/50
Población de la generación 35: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 36/50
Población de la generación 36: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 37/50
Población de la generación 37: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 38/50
Población de la generación 38: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 39/50
Población de la generación 39: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 40/50
Población de la generación 40: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 41/50
Población de la generación 41: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 42/50
Población de la generación 42: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 43/50
Población de la generación 43: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 44/50
Población de la generación 44: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 45/50
Población de la generación 45: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 46/50
Población de la generación 46: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 47/50
Población de la generación 47: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 48/50
Población de la generación 48: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 49/50
Población de la generación 49: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)
Generación 50/50
Población de la generación 50: [[22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13], [22, 25, 23, 19, 13]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13] con evaluación (350.0, 18.7, 3.8, 2.6)

Ruta (12/22) de 22 a 13: [22, 25, 23, 19, 13]
Métricas: atenuación = 18.7, OSNR = 3.8
Tiempo de cálculo: 1.0811169 segundos
Uso de CPU: 12.0 %
Uso de memoria: 8225.421875 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)
Generación inicial: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 11, 9, 7, 6, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 11, 9, 7, 6, 8, 3, 4], [23, 19, 13, 11, 9, 7, 6, 8, 3, 4], [23, 26, 24, 21, 17, 13, 12, 14, 10, 8, 4], [23, 19, 13, 12, 14, 10, 9, 7, 6, 8, 3, 4], [23, 19, 13, 11, 9, 7, 6, 8, 4], [23, 19, 13, 11, 9, 7, 6, 8, 4]]
Generación 1/50
Población de la generación 1: [[23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 2/50
Población de la generación 2: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 12, 14, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 3/50
Población de la generación 3: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 4/50
Población de la generación 4: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 5/50
Población de la generación 5: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 6/50
Población de la generación 6: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 7/50
Población de la generación 7: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 8/50
Población de la generación 8: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 9/50
Población de la generación 9: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 10/50
Población de la generación 10: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 11/50
Población de la generación 11: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 12/50
Población de la generación 12: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 13/50
Población de la generación 13: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 14/50
Población de la generación 14: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 15/50
Población de la generación 15: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 16/50
Población de la generación 16: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 17/50
Población de la generación 17: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 18/50
Población de la generación 18: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 19/50
Población de la generación 19: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 20/50
Población de la generación 20: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 21/50
Población de la generación 21: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 22/50
Población de la generación 22: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 23/50
Población de la generación 23: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 24/50
Población de la generación 24: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 25/50
Población de la generación 25: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 26/50
Población de la generación 26: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 27/50
Población de la generación 27: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 28/50
Población de la generación 28: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 29/50
Población de la generación 29: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 30/50
Población de la generación 30: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 31/50
Población de la generación 31: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 32/50
Población de la generación 32: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 33/50
Población de la generación 33: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 34/50
Población de la generación 34: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 35/50
Población de la generación 35: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 36/50
Población de la generación 36: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 37/50
Población de la generación 37: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 38/50
Población de la generación 38: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 39/50
Población de la generación 39: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 40/50
Población de la generación 40: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 41/50
Población de la generación 41: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 42/50
Población de la generación 42: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 43/50
Población de la generación 43: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 44/50
Población de la generación 44: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 45/50
Población de la generación 45: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 46/50
Población de la generación 46: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 47/50
Población de la generación 47: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 48/50
Población de la generación 48: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 49/50
Población de la generación 49: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)
Generación 50/50
Población de la generación 50: [[23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4], [23, 19, 13, 11, 9, 10, 8, 4]]
Mejor ruta hasta ahora: [23, 19, 13, 11, 9, 10, 8, 4] con evaluación (800.0, 42.6, 1, 5.4)

Ruta (13/22) de 23 a 4: [23, 19, 13, 11, 9, 10, 8, 4]
Métricas: atenuación = 42.6, OSNR = 1
Tiempo de cálculo: 1.0876572 segundos
Uso de CPU: 14.6 %
Uso de memoria: 8231.96875 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)
Generación inicial: [[23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 12, 14, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 12, 14, 10, 8], [23, 26, 24, 21, 17, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 7, 6, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Generación 1/50
Población de la generación 1: [[23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 19, 13, 11, 9, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 19, 13, 11, 9, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 2/50
Población de la generación 2: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 3/50
Población de la generación 3: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 4/50
Población de la generación 4: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 5/50
Población de la generación 5: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 6/50
Población de la generación 6: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 7/50
Población de la generación 7: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 8/50
Población de la generación 8: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 9/50
Población de la generación 9: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 10/50
Población de la generación 10: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 11/50
Población de la generación 11: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 12/50
Población de la generación 12: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 13/50
Población de la generación 13: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 14/50
Población de la generación 14: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 15/50
Población de la generación 15: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 16/50
Población de la generación 16: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 17/50
Población de la generación 17: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 18/50
Población de la generación 18: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 19/50
Población de la generación 19: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 20/50
Población de la generación 20: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 21/50
Población de la generación 21: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 22/50
Población de la generación 22: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 23/50
Población de la generación 23: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 24/50
Población de la generación 24: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 25/50
Población de la generación 25: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 26/50
Población de la generación 26: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 27/50
Población de la generación 27: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 28/50
Población de la generación 28: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 29/50
Población de la generación 29: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 30/50
Población de la generación 30: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 31/50
Población de la generación 31: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 32/50
Población de la generación 32: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 33/50
Población de la generación 33: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 34/50
Población de la generación 34: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 35/50
Población de la generación 35: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 36/50
Población de la generación 36: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 37/50
Población de la generación 37: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 38/50
Población de la generación 38: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 39/50
Población de la generación 39: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 40/50
Población de la generación 40: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 41/50
Población de la generación 41: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 42/50
Población de la generación 42: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 43/50
Población de la generación 43: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 44/50
Población de la generación 44: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 45/50
Población de la generación 45: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 46/50
Población de la generación 46: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 47/50
Población de la generación 47: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 48/50
Población de la generación 48: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 49/50
Población de la generación 49: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)
Generación 50/50
Población de la generación 50: [[23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8], [23, 25, 22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [23, 25, 22, 18, 15, 14, 10, 8] con evaluación (450.0, 24.3, 13.6, 3.6)

Ruta (14/22) de 23 a 8: [23, 25, 22, 18, 15, 14, 10, 8]
Métricas: atenuación = 24.3, OSNR = 13.6
Tiempo de cálculo: 1.0880761 segundos
Uso de CPU: 3.8 %
Uso de memoria: 8227.1875 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)
Generación inicial: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 27, 28, 29, 30, 20, 16, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Generación 1/50
Población de la generación 1: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 2/50
Población de la generación 2: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 3/50
Población de la generación 3: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 4/50
Población de la generación 4: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 5/50
Población de la generación 5: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 6/50
Población de la generación 6: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 7/50
Población de la generación 7: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 8/50
Población de la generación 8: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 9/50
Población de la generación 9: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 10/50
Población de la generación 10: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 11/50
Población de la generación 11: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 12/50
Población de la generación 12: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 13/50
Población de la generación 13: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 14/50
Población de la generación 14: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 15/50
Población de la generación 15: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 16/50
Población de la generación 16: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 17/50
Población de la generación 17: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 18/50
Población de la generación 18: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 19/50
Población de la generación 19: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 20/50
Población de la generación 20: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 21/50
Población de la generación 21: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 22/50
Población de la generación 22: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 23/50
Población de la generación 23: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 24/50
Población de la generación 24: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 25/50
Población de la generación 25: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 26/50
Población de la generación 26: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 27/50
Población de la generación 27: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 28/50
Población de la generación 28: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 29/50
Población de la generación 29: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 30/50
Población de la generación 30: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 31/50
Población de la generación 31: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 32/50
Población de la generación 32: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 33/50
Población de la generación 33: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 34/50
Población de la generación 34: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 35/50
Población de la generación 35: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 36/50
Población de la generación 36: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 37/50
Población de la generación 37: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 38/50
Población de la generación 38: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 39/50
Población de la generación 39: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 40/50
Población de la generación 40: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 41/50
Población de la generación 41: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 42/50
Población de la generación 42: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 43/50
Población de la generación 43: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 44/50
Población de la generación 44: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 45/50
Población de la generación 45: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 46/50
Población de la generación 46: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 47/50
Población de la generación 47: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 48/50
Población de la generación 48: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 49/50
Población de la generación 49: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 50/50
Población de la generación 50: [[23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18], [23, 25, 22, 18]]
Mejor ruta hasta ahora: [23, 25, 22, 18] con evaluación (150.0, 8.1, 13.8, 1.4)

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.0723062 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8166.78125 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)
Generación inicial: [[24, 26, 23, 19, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 26, 23, 19, 13], [24, 21, 17, 13], [24, 26, 23, 19, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 26, 23, 19, 13]]
Generación 1/50
Población de la generación 1: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 26, 23, 19, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 2/50
Población de la generación 2: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 3/50
Población de la generación 3: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 4/50
Población de la generación 4: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 5/50
Población de la generación 5: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 6/50
Población de la generación 6: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 7/50
Población de la generación 7: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 8/50
Población de la generación 8: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 9/50
Población de la generación 9: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 10/50
Población de la generación 10: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 11/50
Población de la generación 11: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 12/50
Población de la generación 12: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 13/50
Población de la generación 13: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 14/50
Población de la generación 14: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 15/50
Población de la generación 15: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 16/50
Población de la generación 16: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 17/50
Población de la generación 17: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 18/50
Población de la generación 18: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 19/50
Población de la generación 19: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 20/50
Población de la generación 20: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 21/50
Población de la generación 21: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 22/50
Población de la generación 22: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 23/50
Población de la generación 23: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 24/50
Población de la generación 24: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 25/50
Población de la generación 25: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 26/50
Población de la generación 26: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 27/50
Población de la generación 27: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 28/50
Población de la generación 28: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 29/50
Población de la generación 29: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 30/50
Población de la generación 30: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 31/50
Población de la generación 31: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 32/50
Población de la generación 32: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 33/50
Población de la generación 33: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 34/50
Población de la generación 34: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 35/50
Población de la generación 35: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 36/50
Población de la generación 36: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 37/50
Población de la generación 37: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 38/50
Población de la generación 38: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 39/50
Población de la generación 39: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 40/50
Población de la generación 40: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 41/50
Población de la generación 41: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 42/50
Población de la generación 42: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 43/50
Población de la generación 43: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 44/50
Población de la generación 44: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 45/50
Población de la generación 45: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 46/50
Población de la generación 46: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 47/50
Población de la generación 47: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 48/50
Población de la generación 48: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 49/50
Población de la generación 49: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)
Generación 50/50
Población de la generación 50: [[24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13], [24, 21, 17, 13]]
Mejor ruta hasta ahora: [24, 21, 17, 13] con evaluación (150.0, 8.1, 13.8, 1.4)

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.077786 segundos
Uso de CPU: 8.0 %
Uso de memoria: 8178.390625 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)
Generación inicial: [[25, 27, 28, 29, 30, 20, 16, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 23, 19, 13, 12, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Generación 1/50
Población de la generación 1: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 2/50
Población de la generación 2: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 3/50
Población de la generación 3: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 4/50
Población de la generación 4: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 5/50
Población de la generación 5: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 6/50
Población de la generación 6: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 7/50
Población de la generación 7: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 8/50
Población de la generación 8: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 9/50
Población de la generación 9: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 10/50
Población de la generación 10: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 11/50
Población de la generación 11: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 12/50
Población de la generación 12: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 13/50
Población de la generación 13: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 14/50
Población de la generación 14: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 15/50
Población de la generación 15: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 16/50
Población de la generación 16: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 17/50
Población de la generación 17: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 18/50
Población de la generación 18: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 19/50
Población de la generación 19: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 20/50
Población de la generación 20: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 21/50
Población de la generación 21: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 22/50
Población de la generación 22: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 23/50
Población de la generación 23: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 24/50
Población de la generación 24: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 25/50
Población de la generación 25: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 26/50
Población de la generación 26: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 27/50
Población de la generación 27: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 28/50
Población de la generación 28: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 29/50
Población de la generación 29: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 30/50
Población de la generación 30: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 31/50
Población de la generación 31: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 32/50
Población de la generación 32: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 33/50
Población de la generación 33: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 34/50
Población de la generación 34: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 35/50
Población de la generación 35: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 36/50
Población de la generación 36: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 37/50
Población de la generación 37: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 38/50
Población de la generación 38: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 39/50
Población de la generación 39: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 40/50
Población de la generación 40: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 41/50
Población de la generación 41: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 42/50
Población de la generación 42: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 43/50
Población de la generación 43: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 44/50
Población de la generación 44: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 45/50
Población de la generación 45: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 46/50
Población de la generación 46: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 47/50
Población de la generación 47: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 48/50
Población de la generación 48: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 49/50
Población de la generación 49: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 50/50
Población de la generación 50: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.08237 segundos
Uso de CPU: -93.0 %
Uso de memoria: 8213.15625 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)
Generación inicial: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Generación 1/50
Población de la generación 1: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 2/50
Población de la generación 2: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 3/50
Población de la generación 3: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 4/50
Población de la generación 4: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 5/50
Población de la generación 5: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 6/50
Población de la generación 6: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 7/50
Población de la generación 7: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 8/50
Población de la generación 8: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 9/50
Población de la generación 9: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 10/50
Población de la generación 10: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 11/50
Población de la generación 11: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 12/50
Población de la generación 12: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 13/50
Población de la generación 13: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 14/50
Población de la generación 14: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 15/50
Población de la generación 15: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 16/50
Población de la generación 16: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 17/50
Población de la generación 17: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 18/50
Población de la generación 18: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 19/50
Población de la generación 19: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 20/50
Población de la generación 20: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 21/50
Población de la generación 21: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 22/50
Población de la generación 22: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 23/50
Población de la generación 23: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 24/50
Población de la generación 24: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 25/50
Población de la generación 25: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 26/50
Población de la generación 26: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 27/50
Población de la generación 27: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 28/50
Población de la generación 28: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 29/50
Población de la generación 29: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 30/50
Población de la generación 30: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 31/50
Población de la generación 31: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 32/50
Población de la generación 32: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 33/50
Población de la generación 33: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 34/50
Población de la generación 34: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 35/50
Población de la generación 35: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 36/50
Población de la generación 36: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 37/50
Población de la generación 37: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 38/50
Población de la generación 38: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 39/50
Población de la generación 39: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 40/50
Población de la generación 40: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 41/50
Población de la generación 41: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 42/50
Población de la generación 42: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 43/50
Población de la generación 43: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 44/50
Población de la generación 44: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 45/50
Población de la generación 45: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 46/50
Población de la generación 46: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 47/50
Población de la generación 47: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 48/50
Población de la generación 48: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 49/50
Población de la generación 49: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 50/50
Población de la generación 50: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.0743651 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8149.25 MB
Calculando ruta (19/22)
Generación inicial: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Generación 1/50
Población de la generación 1: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 2/50
Población de la generación 2: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 3/50
Población de la generación 3: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 4/50
Población de la generación 4: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 5/50
Población de la generación 5: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 6/50
Población de la generación 6: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 7/50
Población de la generación 7: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 8/50
Población de la generación 8: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 9/50
Población de la generación 9: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 10/50
Población de la generación 10: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 11/50
Población de la generación 11: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 12/50
Población de la generación 12: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 13/50
Población de la generación 13: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 14/50
Población de la generación 14: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 15/50
Población de la generación 15: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 16/50
Población de la generación 16: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 17/50
Población de la generación 17: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 18/50
Población de la generación 18: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 19/50
Población de la generación 19: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 20/50
Población de la generación 20: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 21/50
Población de la generación 21: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 22/50
Población de la generación 22: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 23/50
Población de la generación 23: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 24/50
Población de la generación 24: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 25/50
Población de la generación 25: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 26/50
Población de la generación 26: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 27/50
Población de la generación 27: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 28/50
Población de la generación 28: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 29/50
Población de la generación 29: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 30/50
Población de la generación 30: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 31/50
Población de la generación 31: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 32/50
Población de la generación 32: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 33/50
Población de la generación 33: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 34/50
Población de la generación 34: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 35/50
Población de la generación 35: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 36/50
Población de la generación 36: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 37/50
Población de la generación 37: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 38/50
Población de la generación 38: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 39/50
Población de la generación 39: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 40/50
Población de la generación 40: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 41/50
Población de la generación 41: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 42/50
Población de la generación 42: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 43/50
Población de la generación 43: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 44/50
Población de la generación 44: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 45/50
Población de la generación 45: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 46/50
Población de la generación 46: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 47/50
Población de la generación 47: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 48/50
Población de la generación 48: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 49/50
Población de la generación 49: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 50/50
Población de la generación 50: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.0748279 segundos
Uso de CPU: 4.5 %
Uso de memoria: 8149.3125 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)
Generación inicial: [[25, 27, 28, 29, 30, 20], [25, 27, 28, 29, 30, 20], [25, 27, 28, 29, 30, 20], [25, 22, 18, 16, 20], [25, 27, 28, 29, 30, 20], [25, 27, 28, 29, 30, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 27, 28, 29, 30, 20], [25, 22, 18, 16, 20]]
Generación 1/50
Población de la generación 1: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 2/50
Población de la generación 2: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 3/50
Población de la generación 3: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 4/50
Población de la generación 4: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 5/50
Población de la generación 5: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 6/50
Población de la generación 6: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 7/50
Población de la generación 7: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 8/50
Población de la generación 8: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 9/50
Población de la generación 9: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 10/50
Población de la generación 10: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 11/50
Población de la generación 11: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 12/50
Población de la generación 12: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 13/50
Población de la generación 13: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 14/50
Población de la generación 14: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 15/50
Población de la generación 15: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 16/50
Población de la generación 16: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 17/50
Población de la generación 17: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 18/50
Población de la generación 18: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 19/50
Población de la generación 19: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 20/50
Población de la generación 20: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 21/50
Población de la generación 21: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 22/50
Población de la generación 22: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 23/50
Población de la generación 23: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 24/50
Población de la generación 24: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 25/50
Población de la generación 25: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 26/50
Población de la generación 26: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 27/50
Población de la generación 27: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 28/50
Población de la generación 28: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 29/50
Población de la generación 29: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 30/50
Población de la generación 30: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 31/50
Población de la generación 31: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 32/50
Población de la generación 32: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 33/50
Población de la generación 33: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 34/50
Población de la generación 34: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 35/50
Población de la generación 35: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 36/50
Población de la generación 36: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 37/50
Población de la generación 37: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 38/50
Población de la generación 38: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 39/50
Población de la generación 39: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 40/50
Población de la generación 40: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 41/50
Población de la generación 41: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 42/50
Población de la generación 42: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 43/50
Población de la generación 43: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 44/50
Población de la generación 44: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 45/50
Población de la generación 45: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 46/50
Población de la generación 46: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 47/50
Población de la generación 47: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 48/50
Población de la generación 48: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 49/50
Población de la generación 49: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 50/50
Población de la generación 50: [[25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20], [25, 22, 18, 16, 20]]
Mejor ruta hasta ahora: [25, 22, 18, 16, 20] con evaluación (200.0, 10.8, 13.8, 1.8)

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.0822153 segundos
Uso de CPU: 3.6 %
Uso de memoria: 8164.09375 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)
Generación inicial: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 22, 25, 23, 19, 13, 12, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 3, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 29, 28, 27, 25, 22, 18, 15, 14, 10, 9, 7, 5, 2, 1, 3, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Generación 1/50
Población de la generación 1: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 2/50
Población de la generación 2: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 3/50
Población de la generación 3: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 4/50
Población de la generación 4: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 5/50
Población de la generación 5: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 6/50
Población de la generación 6: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 7/50
Población de la generación 7: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 8/50
Población de la generación 8: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 9/50
Población de la generación 9: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 10/50
Población de la generación 10: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 11/50
Población de la generación 11: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 12/50
Población de la generación 12: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 13/50
Población de la generación 13: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 14/50
Población de la generación 14: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 15/50
Población de la generación 15: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 16/50
Población de la generación 16: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 17/50
Población de la generación 17: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 18/50
Población de la generación 18: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 19/50
Población de la generación 19: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 20/50
Población de la generación 20: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 21/50
Población de la generación 21: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 22/50
Población de la generación 22: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 23/50
Población de la generación 23: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 24/50
Población de la generación 24: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 25/50
Población de la generación 25: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 26/50
Población de la generación 26: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 27/50
Población de la generación 27: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 28/50
Población de la generación 28: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 29/50
Población de la generación 29: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 30/50
Población de la generación 30: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 31/50
Población de la generación 31: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 32/50
Población de la generación 32: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 33/50
Población de la generación 33: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 34/50
Población de la generación 34: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 35/50
Población de la generación 35: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 36/50
Población de la generación 36: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 37/50
Población de la generación 37: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 38/50
Población de la generación 38: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 39/50
Población de la generación 39: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 40/50
Población de la generación 40: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 41/50
Población de la generación 41: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 42/50
Población de la generación 42: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 43/50
Población de la generación 43: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 44/50
Población de la generación 44: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 45/50
Población de la generación 45: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 46/50
Población de la generación 46: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 47/50
Población de la generación 47: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 48/50
Población de la generación 48: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 49/50
Población de la generación 49: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)
Generación 50/50
Población de la generación 50: [[30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4], [30, 20, 16, 18, 15, 14, 10, 8, 4]]
Mejor ruta hasta ahora: [30, 20, 16, 18, 15, 14, 10, 8, 4] con evaluación (800.0, 42.8, 3.8, 5.6)

Ruta (21/22) de 30 a 4: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 42.8, OSNR = 3.8
Tiempo de cálculo: 1.111371 segundos
Uso de CPU: 4.7 %
Uso de memoria: 8165.546875 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)
Generación inicial: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Generación 1/50
Población de la generación 1: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 2/50
Población de la generación 2: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 3/50
Población de la generación 3: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 4/50
Población de la generación 4: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 5/50
Población de la generación 5: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 6/50
Población de la generación 6: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 7/50
Población de la generación 7: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 8/50
Población de la generación 8: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 9/50
Población de la generación 9: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 10/50
Población de la generación 10: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 11/50
Población de la generación 11: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 12/50
Población de la generación 12: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 13/50
Población de la generación 13: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 14/50
Población de la generación 14: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 15/50
Población de la generación 15: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 16/50
Población de la generación 16: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 17/50
Población de la generación 17: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 18/50
Población de la generación 18: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 19/50
Población de la generación 19: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 20/50
Población de la generación 20: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 21/50
Población de la generación 21: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 22/50
Población de la generación 22: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 23/50
Población de la generación 23: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 24/50
Población de la generación 24: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 25/50
Población de la generación 25: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 26/50
Población de la generación 26: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 27/50
Población de la generación 27: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 28/50
Población de la generación 28: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 29/50
Población de la generación 29: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 30/50
Población de la generación 30: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 31/50
Población de la generación 31: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 32/50
Población de la generación 32: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 33/50
Población de la generación 33: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 34/50
Población de la generación 34: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 35/50
Población de la generación 35: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 36/50
Población de la generación 36: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 37/50
Población de la generación 37: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 38/50
Población de la generación 38: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 39/50
Población de la generación 39: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 40/50
Población de la generación 40: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 41/50
Población de la generación 41: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 42/50
Población de la generación 42: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 43/50
Población de la generación 43: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 44/50
Población de la generación 44: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 45/50
Población de la generación 45: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 46/50
Población de la generación 46: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 47/50
Población de la generación 47: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 48/50
Población de la generación 48: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 49/50
Población de la generación 49: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)
Generación 50/50
Población de la generación 50: [[30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29], [30, 29]]
Mejor ruta hasta ahora: [30, 29] con evaluación (50.0, 2.7, 13.8, 0.4)

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 1.0714152 segundos
Uso de CPU: 20.5 %
Uso de memoria: 8195.578125 MB


Fichero 'RefNet3_rutas_calcula_ruta_ga_opt_100U.csv' generado correctamente

Tiempo total de cálculo: 23.69 segundos
Uso total de CPU: 79.1 %
Uso total de memoria: 180727.28 MB
Tiempo promedio por demanda: 1.08 segundos
Uso promedio de CPU por demanda: 3.6 %
Uso promedio de memoria por demanda: 8214.88 MB

Encaminamiento calcula_ruta_ga_opt de las demandas de la matriz 100U completado con éxito
In [271]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: GA Optimizado

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_a_star_euclidea_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el df
print("Verificando el formato de las rutas en el df ...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'GA Optimizado'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el df ...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 17, 13, 12, 14, 15, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 17), (17, 13), (13, 12), (12, 14), (14, 15), (15, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 18, 15, 14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 12), (12, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 20), (20, 16), (16, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [272]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: GA Optimizado

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_ga_opt_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - GA Optimizado 
nombre_algoritmo = 'GA Optimizado'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [273]:
# Calcular la ocupacion (número de canales DWDM) por enlace - GA Optimizado
nombre_algoritmo = 'ga_opt'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      2                        0   
4        7       5                      1                        0   
5        5       2                      1                        0   
6        2       1                      1                        0   
7        1       3                      1                        0   
8       10       9                      1                        0   
9       12      13                      2                        0   
10      13      11                      3                        0   
11      11       9                      3                        0   
12       9      10                      2                        0   
13      14      12                      1                        0   
14      19      13                      3                        0   
15      13      12                      2                        0   
16      21      17                      2                        0   
17      17      13                      2                        0   
18      12      14                      1                        0   
19      14      15                      1                        0   
20      15      18                      1                        0   
21      18      16                      2                        0   
22      22      18                      7                        0   
23      18      15                      4                        0   
24      15      14                      4                        0   
25      14      10                      3                        0   
26      10       8                      4                        0   
27      22      25                      1                        0   
28      25      23                      1                        0   
29      23      19                      2                        0   
30       8       4                      2                        0   
31      23      25                      2                        0   
32      25      22                      6                        0   
33      24      21                      1                        0   
34      16      20                      1                        0   
35      30      20                      1                        0   
36      20      16                      1                        0   
37      16      18                      1                        0   
38      30      29                      1                        0   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               1               96  1.041667  
2               1               96  1.041667  
3               2               96  2.083333  
4               1               96  1.041667  
5               1               96  1.041667  
6               1               96  1.041667  
7               1               96  1.041667  
8               1               96  1.041667  
9               2               96  2.083333  
10              3               96  3.125000  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              3               96  3.125000  
15              2               96  2.083333  
16              2               96  2.083333  
17              2               96  2.083333  
18              1               96  1.041667  
19              1               96  1.041667  
20              1               96  1.041667  
21              2               96  2.083333  
22              7               96  7.291667  
23              4               96  4.166667  
24              4               96  4.166667  
25              3               96  3.125000  
26              4               96  4.166667  
27              1               96  1.041667  
28              1               96  1.041667  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              6               96  6.250000  
33              1               96  1.041667  
34              1               96  1.041667  
35              1               96  1.041667  
36              1               96  1.041667  
37              1               96  1.041667  
38              1               96  1.041667  

Algoritmo ACO Bidireccional | Matriz de tráfico 100G U | Rutas simples |

In [274]:
# Test de validación para una matriz no protegida (U)
# Algoritmo ACO Bidireccional
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_aco_bid')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.0162163 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8310.71875 MB
Calculando ruta (2/22)

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.021569 segundos
Uso de CPU: 14.0 %
Uso de memoria: 8302.390625 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 1.0279839 segundos
Uso de CPU: 2.4 %
Uso de memoria: 8256.5 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.0390642 segundos
Uso de CPU: 9.6 %
Uso de memoria: 8276.546875 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 1.0212669 segundos
Uso de CPU: 7.0 %
Uso de memoria: 8242.890625 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 1.079721 segundos
Uso de CPU: -100.0 %
Uso de memoria: 8266.21875 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 1.032968 segundos
Uso de CPU: 1.2 %
Uso de memoria: 8246.65625 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 1.0658491 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8183.84375 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 1.0582421 segundos
Uso de CPU: 4.8 %
Uso de memoria: 8185.046875 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.

Ruta (10/22) de 21 a 16: [21, 24, 26, 23, 25, 22, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 1.0485902 segundos
Uso de CPU: 17.6 %
Uso de memoria: 8252.140625 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.0315039 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8152.125 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.

Ruta (12/22) de 22 a 13: [22, 25, 23, 19, 13]
Métricas: atenuación = 18.7, OSNR = 3.8
Tiempo de cálculo: 1.0510058 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8148.890625 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.

Ruta (13/22) de 23 a 4: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 34.9, OSNR = 3.8
Tiempo de cálculo: 1.0558641 segundos
Uso de CPU: 2.5 %
Uso de memoria: 8150.453125 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta (14/22) de 23 a 8: [23, 25, 22, 18, 15, 14, 10, 8]
Métricas: atenuación = 24.3, OSNR = 13.6
Tiempo de cálculo: 1.0690124 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8149.171875 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.0531969 segundos
Uso de CPU: 15.5 %
Uso de memoria: 8174.671875 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.0156319 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8189.78125 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.0412979 segundos
Uso de CPU: 14.5 %
Uso de memoria: 8136.34375 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.0359581 segundos
Uso de CPU: -15.399999999999999 %
Uso de memoria: 8130.578125 MB
Calculando ruta (19/22)
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.0385239 segundos
Uso de CPU: 5.7 %
Uso de memoria: 8206.796875 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.039968 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8205.28125 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta (21/22) de 30 a 4: [30, 29, 28, 27, 25, 22, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 43.0, OSNR = 3.8
Tiempo de cálculo: 1.0628581 segundos
Uso de CPU: 5.9 %
Uso de memoria: 8148.421875 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 1.0245731 segundos
Uso de CPU: 3.6 %
Uso de memoria: 8133.8125 MB


Fichero 'RefNet3_rutas_calcula_ruta_aco_bid_100U.csv' generado correctamente

Tiempo total de cálculo: 22.93 segundos
Uso total de CPU: 0.0 %
Uso total de memoria: 180449.28 MB
Tiempo promedio por demanda: 1.04 segundos
Uso promedio de CPU por demanda: 0.0 %
Uso promedio de memoria por demanda: 8202.24 MB

Encaminamiento calcula_ruta_aco_bid de las demandas de la matriz 100U completado con éxito
In [275]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: ACO Bidireccional

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_aco_bid_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el df
print("Verificando el formato de las rutas en el df ...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'ACO Bidireccional'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el df ...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 24, 26, 23, 25, 22, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 24), (24, 26), (26, 23), (23, 25), (25, 22), (22, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 25, 23, 19, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 25), (25, 23), (23, 19), (19, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 29, 28, 27, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29), (29, 28), (28, 27), (27, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [276]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: ACO Bidireccional

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_aco_bid_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - ACO Bidireccional 
nombre_algoritmo = 'ACO Bidireccional'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [277]:
# Calcular la ocupacion (número de canales DWDM) por enlace - ACO Bidireccional
nombre_algoritmo = 'aco_bid'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      2                        0   
4        7       5                      1                        0   
5        5       2                      1                        0   
6        2       1                      1                        0   
7        1       3                      1                        0   
8       10       9                      1                        0   
9       12      13                      2                        0   
10      13      11                      2                        0   
11      11       9                      2                        0   
12       9      10                      1                        0   
13      14      12                      1                        0   
14      19      13                      2                        0   
15      13      12                      1                        0   
16      21      24                      1                        0   
17      24      26                      1                        0   
18      26      23                      1                        0   
19      23      25                      4                        0   
20      25      22                      9                        0   
21      22      18                     10                        0   
22      18      16                      2                        0   
23      18      15                      5                        0   
24      15      14                      5                        0   
25      14      10                      4                        0   
26      10       8                      4                        0   
27      22      25                      1                        0   
28      25      23                      1                        0   
29      23      19                      1                        0   
30       8       4                      2                        0   
31      24      21                      1                        0   
32      21      17                      1                        0   
33      17      13                      1                        0   
34      16      20                      1                        0   
35      30      29                      2                        0   
36      29      28                      1                        0   
37      28      27                      1                        0   
38      27      25                      1                        0   

    Total Canales  Num Max CH DWDM          %  
0               2               96   2.083333  
1               1               96   1.041667  
2               1               96   1.041667  
3               2               96   2.083333  
4               1               96   1.041667  
5               1               96   1.041667  
6               1               96   1.041667  
7               1               96   1.041667  
8               1               96   1.041667  
9               2               96   2.083333  
10              2               96   2.083333  
11              2               96   2.083333  
12              1               96   1.041667  
13              1               96   1.041667  
14              2               96   2.083333  
15              1               96   1.041667  
16              1               96   1.041667  
17              1               96   1.041667  
18              1               96   1.041667  
19              4               96   4.166667  
20              9               96   9.375000  
21             10               96  10.416667  
22              2               96   2.083333  
23              5               96   5.208333  
24              5               96   5.208333  
25              4               96   4.166667  
26              4               96   4.166667  
27              1               96   1.041667  
28              1               96   1.041667  
29              1               96   1.041667  
30              2               96   2.083333  
31              1               96   1.041667  
32              1               96   1.041667  
33              1               96   1.041667  
34              1               96   1.041667  
35              2               96   2.083333  
36              1               96   1.041667  
37              1               96   1.041667  
38              1               96   1.041667  

Algoritmo BCO Básico | Matriz de tráfico 100G U | Rutas simples |

In [278]:
# Test de validación para una matriz no protegida (U)
# Algoritmo BCO Básico
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_bco_basico')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)
No se generaron rutas válidas en la iteración 20
No se generaron rutas válidas en la iteración 35

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.011343 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8291.671875 MB
Calculando ruta (2/22)
No se generaron rutas válidas en la iteración 32
No se generaron rutas válidas en la iteración 34

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.0173938 segundos
Uso de CPU: 14.5 %
Uso de memoria: 8285.9375 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 1.016757 segundos
Uso de CPU: 3.8 %
Uso de memoria: 8254.9375 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 17

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.0187302 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8220.5 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)
No se generaron rutas válidas en la iteración 40

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 1.0166709 segundos
Uso de CPU: 9.8 %
Uso de memoria: 8201.3125 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 15
No se generaron rutas válidas en la iteración 16
No se generaron rutas válidas en la iteración 25
No se generaron rutas válidas en la iteración 29
No se generaron rutas válidas en la iteración 36
No se generaron rutas válidas en la iteración 38
No se generaron rutas válidas en la iteración 47

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 1.019865 segundos
Uso de CPU: 7.0 %
Uso de memoria: 8192.125 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 6
No se generaron rutas válidas en la iteración 11
No se generaron rutas válidas en la iteración 12
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 37
No se generaron rutas válidas en la iteración 38
No se generaron rutas válidas en la iteración 42
No se generaron rutas válidas en la iteración 43
No se generaron rutas válidas en la iteración 44
No se generaron rutas válidas en la iteración 45
No se generaron rutas válidas en la iteración 47

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 1.0169859 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8185.140625 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)
No se generaron rutas válidas en la iteración 1
No se generaron rutas válidas en la iteración 7
No se generaron rutas válidas en la iteración 23

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 1.0201008 segundos
Uso de CPU: 6.1 %
Uso de memoria: 8116.546875 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)
No se generaron rutas válidas en la iteración 3
No se generaron rutas válidas en la iteración 29
No se generaron rutas válidas en la iteración 30

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 1.0214438 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8138.859375 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)
No se generaron rutas válidas en la iteración 12
No se generaron rutas válidas en la iteración 32
No se generaron rutas válidas en la iteración 45
No se generaron rutas válidas en la iteración 48

Ruta (10/22) de 21 a 16: [21, 24, 26, 23, 25, 22, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 1.0214031 segundos
Uso de CPU: 1.2 %
Uso de memoria: 8121.921875 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)
No se generaron rutas válidas en la iteración 9
No se generaron rutas válidas en la iteración 37
No se generaron rutas válidas en la iteración 38

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.0228817 segundos
Uso de CPU: 6.0 %
Uso de memoria: 8121.296875 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)

Ruta (12/22) de 22 a 13: [22, 25, 23, 19, 13]
Métricas: atenuación = 18.7, OSNR = 3.8
Tiempo de cálculo: 1.0245309 segundos
Uso de CPU: 2.4 %
Uso de memoria: 8125.53125 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)
No se generaron rutas válidas en la iteración 6
No se generaron rutas válidas en la iteración 8
No se generaron rutas válidas en la iteración 12
No se generaron rutas válidas en la iteración 24
No se generaron rutas válidas en la iteración 26
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 30
No se generaron rutas válidas en la iteración 31
No se generaron rutas válidas en la iteración 44
No se generaron rutas válidas en la iteración 45
No se generaron rutas válidas en la iteración 48
No se generaron rutas válidas en la iteración 49

Ruta (13/22) de 23 a 4: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 34.9, OSNR = 3.8
Tiempo de cálculo: 1.0189571 segundos
Uso de CPU: -46.5 %
Uso de memoria: 8125.9375 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)
No se generaron rutas válidas en la iteración 1
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 9
No se generaron rutas válidas en la iteración 10
No se generaron rutas válidas en la iteración 12
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 17
No se generaron rutas válidas en la iteración 18
No se generaron rutas válidas en la iteración 20
No se generaron rutas válidas en la iteración 21
No se generaron rutas válidas en la iteración 22
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 32
No se generaron rutas válidas en la iteración 37
No se generaron rutas válidas en la iteración 38
No se generaron rutas válidas en la iteración 44
No se generaron rutas válidas en la iteración 49

Ruta (14/22) de 23 a 8: [23, 25, 22, 18, 15, 14, 10, 8]
Métricas: atenuación = 24.3, OSNR = 13.6
Tiempo de cálculo: 1.0174971 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8133.359375 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)
No se generaron rutas válidas en la iteración 2
No se generaron rutas válidas en la iteración 6
No se generaron rutas válidas en la iteración 42

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.0214319 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8131.9375 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.018306 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8130.84375 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)
No se generaron rutas válidas en la iteración 10
No se generaron rutas válidas en la iteración 13
No se generaron rutas válidas en la iteración 39

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.0185361 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8132.765625 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.018755 segundos
Uso de CPU: 5.9 %
Uso de memoria: 8131.828125 MB
Calculando ruta (19/22)
No se generaron rutas válidas en la iteración 48

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.018873 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8118.453125 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)
No se generaron rutas válidas en la iteración 35
No se generaron rutas válidas en la iteración 37

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.018049 segundos
Uso de CPU: -97.6 %
Uso de memoria: 8118.140625 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)
No se generaron rutas válidas en la iteración 0
No se generaron rutas válidas en la iteración 4
No se generaron rutas válidas en la iteración 6
No se generaron rutas válidas en la iteración 11
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 16
No se generaron rutas válidas en la iteración 18
No se generaron rutas válidas en la iteración 19
No se generaron rutas válidas en la iteración 22
No se generaron rutas válidas en la iteración 23
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 37
No se generaron rutas válidas en la iteración 41
No se generaron rutas válidas en la iteración 43
No se generaron rutas válidas en la iteración 44
No se generaron rutas válidas en la iteración 48

Ruta (21/22) de 30 a 4: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Métricas: atenuación = 42.8, OSNR = 3.8
Tiempo de cálculo: 1.0194318 segundos
Uso de CPU: 3.6 %
Uso de memoria: 8126.28125 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 1.0167871 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8130.6875 MB


Fichero 'RefNet3_rutas_calcula_ruta_bco_basico_100U.csv' generado correctamente

Tiempo total de cálculo: 22.41 segundos
Uso total de CPU: -80.1 %
Uso total de memoria: 179536.02 MB
Tiempo promedio por demanda: 1.02 segundos
Uso promedio de CPU por demanda: -3.64 %
Uso promedio de memoria por demanda: 8160.73 MB

Encaminamiento calcula_ruta_bco_basico de las demandas de la matriz 100U completado con éxito
In [279]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: BCO Basico

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_bco_basico_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el df
print("Verificando el formato de las rutas en el df ...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'BCO Basico'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el df ...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 24, 26, 23, 25, 22, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 24), (24, 26), (26, 23), (23, 25), (25, 22), (22, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 25, 23, 19, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 25), (25, 23), (23, 19), (19, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 25, 22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 20, 16, 18, 15, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 20), (20, 16), (16, 18), (18, 15), (15, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [280]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: BCO Básico

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_bco_basico_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - BCO Básico 
nombre_algoritmo = 'BCO Básico'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [281]:
# Calcular la ocupacion (número de canales DWDM) por enlace - BCO Básico
nombre_algoritmo = 'bco_basico'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      2                        0   
4        7       5                      1                        0   
5        5       2                      1                        0   
6        2       1                      1                        0   
7        1       3                      1                        0   
8       10       9                      1                        0   
9       12      13                      2                        0   
10      13      11                      2                        0   
11      11       9                      2                        0   
12       9      10                      1                        0   
13      14      12                      1                        0   
14      19      13                      2                        0   
15      13      12                      1                        0   
16      21      24                      1                        0   
17      24      26                      1                        0   
18      26      23                      1                        0   
19      23      25                      4                        0   
20      25      22                      8                        0   
21      22      18                      9                        0   
22      18      16                      2                        0   
23      18      15                      5                        0   
24      15      14                      5                        0   
25      14      10                      4                        0   
26      10       8                      4                        0   
27      22      25                      1                        0   
28      25      23                      1                        0   
29      23      19                      1                        0   
30       8       4                      2                        0   
31      24      21                      1                        0   
32      21      17                      1                        0   
33      17      13                      1                        0   
34      16      20                      1                        0   
35      30      20                      1                        0   
36      20      16                      1                        0   
37      16      18                      1                        0   
38      30      29                      1                        0   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               1               96  1.041667  
2               1               96  1.041667  
3               2               96  2.083333  
4               1               96  1.041667  
5               1               96  1.041667  
6               1               96  1.041667  
7               1               96  1.041667  
8               1               96  1.041667  
9               2               96  2.083333  
10              2               96  2.083333  
11              2               96  2.083333  
12              1               96  1.041667  
13              1               96  1.041667  
14              2               96  2.083333  
15              1               96  1.041667  
16              1               96  1.041667  
17              1               96  1.041667  
18              1               96  1.041667  
19              4               96  4.166667  
20              8               96  8.333333  
21              9               96  9.375000  
22              2               96  2.083333  
23              5               96  5.208333  
24              5               96  5.208333  
25              4               96  4.166667  
26              4               96  4.166667  
27              1               96  1.041667  
28              1               96  1.041667  
29              1               96  1.041667  
30              2               96  2.083333  
31              1               96  1.041667  
32              1               96  1.041667  
33              1               96  1.041667  
34              1               96  1.041667  
35              1               96  1.041667  
36              1               96  1.041667  
37              1               96  1.041667  
38              1               96  1.041667  

Algoritmo PSO Óptimo | Matriz de tráfico 100G U | Rutas simples |

In [283]:
# Test de validación para una matriz no protegida (U)
# Algoritmo PSO Óptimo
# Rutas simples (U)

#grafo = grafo_red
#matriz = 'RefNet3/RefNet3_TM_100U.csv'

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"Demandas procesadas:\n{demandas}")
calcular_rutas_no_protegidas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_pso_opt')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan  1.  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  1. nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan  1. nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan  1. nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan  1. nan nan nan  1. nan nan nan nan nan nan nan nan nan  1.
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan  1. nan nan nan  2.
  nan  1. nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan  1. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  1.  0. nan]]

Total de demandas en la matriz 100U: 22
Demanda de 8 a 3: 2 longitudes de onda
Calculando ruta (1/22)
Estancamiento en nodo 10, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23, 25, 22, 18, 15, 14, 10]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 7, 6]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 19, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 7, 6]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 7, 6]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 10, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 19, 23, 25, 22, 18, 15, 14, 12]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 19, 23, 26, 24, 21, 17]

Ruta (1/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.006583 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8287.640625 MB
Calculando ruta (2/22)
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 12, 13, 11, 9, 7, 6]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23, 25, 22, 18, 15, 14, 12]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 10, 14, 12, 13, 11]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 10, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 12, 14, 10]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 10, 14, 12, 13, 19, 23, 26, 24, 21, 17]

Ruta (2/22) de 8 a 3: [8, 3]
Métricas: atenuación = 10.6, OSNR = 3.8
Tiempo de cálculo: 1.0087512 segundos
Uso de CPU: 11.8 %
Uso de memoria: 8247.5 MB
Demanda de 8 a 7: 1 longitudes de onda
Calculando ruta (3/22)
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 23, 19, 13, 12]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23, 19]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 12, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 7. Ruta actual: [8, 3, 4]

Ruta (3/22) de 8 a 7: [8, 6, 7]
Métricas: atenuación = 11.6, OSNR = 1
Tiempo de cálculo: 1.008718 segundos
Uso de CPU: 3.6 %
Uso de memoria: 8262.078125 MB
Demanda de 9 a 3: 1 longitudes de onda
Calculando ruta (4/22)
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 11, 13, 17, 21, 24, 26, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 11, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 11, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 10, 14, 12, 13, 17, 21, 24, 26, 23, 25, 22, 18, 15]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 9 hasta 3. Ruta actual: [9, 11, 13, 17, 21, 24, 26, 23, 19]

Ruta (4/22) de 9 a 3: [9, 7, 5, 2, 1, 3]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.004962 segundos
Uso de CPU: 8.8 %
Uso de memoria: 8256.640625 MB
Demanda de 10 a 9: 1 longitudes de onda
Calculando ruta (5/22)
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 17, 21, 24, 26, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]

Ruta (5/22) de 10 a 9: [10, 9]
Métricas: atenuación = 7.9, OSNR = 1
Tiempo de cálculo: 1.0088651 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8179.28125 MB
Demanda de 12 a 7: 1 longitudes de onda
Calculando ruta (6/22)
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 9, 11]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 10, 8, 3, 4]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 11, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 11, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 11, 9, 10, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 10, 9, 11, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 19]

Ruta (6/22) de 12 a 7: [12, 13, 11, 9, 7]
Métricas: atenuación = 13.5, OSNR = 13.6
Tiempo de cálculo: 1.0105977 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8183.0 MB
Demanda de 13 a 10: 1 longitudes de onda
Calculando ruta (7/22)
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 19, 23, 25, 22, 18, 15, 14, 12]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 12, 14, 15, 18, 22, 25, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 13 hasta 10. Ruta actual: [13, 17, 21, 24, 26, 23, 19]

Ruta (7/22) de 13 a 10: [13, 11, 9, 10]
Métricas: atenuación = 13.3, OSNR = 1
Tiempo de cálculo: 1.007513 segundos
Uso de CPU: 11.4 %
Uso de memoria: 8186.0 MB
Demanda de 14 a 13: 1 longitudes de onda
Calculando ruta (8/22)
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 9, 7, 6, 8, 3, 1, 2, 5]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]

Ruta (8/22) de 14 a 13: [14, 12, 13]
Métricas: atenuación = 10.6, OSNR = 1
Tiempo de cálculo: 1.008558 segundos
Uso de CPU: 24.4 %
Uso de memoria: 8223.578125 MB
Demanda de 19 a 12: 1 longitudes de onda
Calculando ruta (9/22)
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 13, 11, 9, 7, 6, 8, 3, 1, 2, 5]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 25, 22, 18, 15, 14, 10, 9, 11, 13, 17, 21, 24, 26]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 26, 24, 21, 17, 13, 11, 9, 7, 5, 2, 1, 3, 8, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8, 4, 3, 1, 2, 5]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 13, 11, 9, 10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 13, 11, 9, 10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 19 hasta 12. Ruta actual: [19, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]

Ruta (9/22) de 19 a 12: [19, 13, 12]
Métricas: atenuación = 13.3, OSNR = 3.8
Tiempo de cálculo: 1.0086141 segundos
Uso de CPU: 14.0 %
Uso de memoria: 8286.09375 MB
Demanda de 21 a 16: 1 longitudes de onda
Calculando ruta (10/22)
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 11, 9, 10, 14, 12]
Estancamiento en nodo 24, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 19, 23, 26, 24]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 24, 26, 23, 19, 13, 17]
Estancamiento en nodo 24, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 19, 23, 26, 24]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 24, 26, 23, 25, 22, 18, 15, 14, 10, 9, 11, 13, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 24, 26, 23, 25, 22, 18, 15, 14, 12, 13, 17]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 11, 9, 10, 8, 3, 4]
Estancamiento en nodo 24, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 19, 23, 26, 24]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 24, 26, 23, 19, 13, 17]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 11, 9, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 12, 14, 10, 8, 4, 3, 1, 2, 5, 7, 9, 11]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 12, 14, 10, 8, 3, 1, 2, 5, 7, 9, 11]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 21 hasta 16. Ruta actual: [21, 17, 13, 11, 9, 10, 8, 6, 7, 5, 2, 1, 3, 4]

Ruta (10/22) de 21 a 16: [21, 17, 13, 12, 14, 15, 18, 16]
Métricas: atenuación = 24.1, OSNR = 1
Tiempo de cálculo: 1.0094609 segundos
Uso de CPU: 3.6 %
Uso de memoria: 8199.90625 MB
Demanda de 22 a 8: 1 longitudes de onda
Calculando ruta (11/22)
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 12, 14, 15]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19, 13, 11, 9, 10, 14, 15]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 15, 14, 12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 15, 14, 10, 9, 11, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 12, 14, 10, 9, 11]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 15, 14, 12, 13, 19, 23, 26, 24, 21, 17]

Ruta (11/22) de 22 a 8: [22, 18, 15, 14, 10, 8]
Métricas: atenuación = 18.9, OSNR = 13.6
Tiempo de cálculo: 1.0096121 segundos
Uso de CPU: 8.1 %
Uso de memoria: 8143.21875 MB
Demanda de 22 a 13: 1 longitudes de onda
Calculando ruta (12/22)
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 13. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 13. Ruta actual: [22, 18, 15, 14, 10, 9, 7, 6, 8, 4, 3, 1, 2, 5]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 13. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 9, 7, 6, 8, 3, 4]

Ruta (12/22) de 22 a 13: [22, 18, 15, 14, 12, 13]
Métricas: atenuación = 18.7, OSNR = 1
Tiempo de cálculo: 1.013129 segundos
Uso de CPU: 13.6 %
Uso de memoria: 8200.03125 MB
Demanda de 23 a 4: 1 longitudes de onda
Calculando ruta (13/22)
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 22, 18, 15, 14, 12, 13, 17, 21, 24, 26]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8, 10, 14, 12]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 19, 13, 11, 9, 10, 14, 12]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 26, 24, 21, 17, 13, 12, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 19, 13, 12, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 26, 24, 21, 17, 13, 12, 14, 10, 8, 6, 7, 9, 11]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 26, 24, 21, 17, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 19, 13, 11, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 22, 18, 15, 14, 10, 8, 6, 7, 9, 11, 13, 12]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 22, 18, 15, 14, 12, 13, 19]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 4. Ruta actual: [23, 25, 27, 28, 29, 30, 20, 16, 18, 22]

Ruta (13/22) de 23 a 4: [23, 26, 24, 21, 17, 13, 12, 14, 10, 8, 4]
Métricas: atenuación = 50.7, OSNR = 1
Tiempo de cálculo: 1.0037529 segundos
Uso de CPU: -89.0 %
Uso de memoria: 8196.671875 MB
Demanda de 23 a 8: 1 longitudes de onda
Calculando ruta (14/22)
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 26, 24, 21, 17, 13, 12, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 19, 13, 11, 9, 10, 14, 12]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 26, 24, 21, 17, 13, 12, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 25, 22, 18, 15, 14, 10, 9, 11, 13, 19]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 8. Ruta actual: [23, 19, 13, 17, 21, 24, 26]

Ruta (14/22) de 23 a 8: [23, 19, 13, 11, 9, 7, 6, 8]
Métricas: atenuación = 35.7, OSNR = 1
Tiempo de cálculo: 1.007724 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8219.53125 MB
Demanda de 23 a 18: 1 longitudes de onda
Calculando ruta (15/22)
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 26, 24, 21, 17, 13, 12, 14, 10, 9, 11]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 8, 6]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 19, 13, 12, 14, 10, 8, 4, 3, 1, 2, 5, 7, 9, 11]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 23 hasta 18. Ruta actual: [23, 19, 13, 12, 14, 10, 9, 7, 6, 8, 3, 4]

Ruta (15/22) de 23 a 18: [23, 25, 22, 18]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.0073233 segundos
Uso de CPU: 8.4 %
Uso de memoria: 8222.359375 MB
Demanda de 24 a 13: 1 longitudes de onda
Calculando ruta (16/22)
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 24 hasta 13. Ruta actual: [24, 26, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 24 hasta 13. Ruta actual: [24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]

Ruta (16/22) de 24 a 13: [24, 21, 17, 13]
Métricas: atenuación = 8.1, OSNR = 13.8
Tiempo de cálculo: 1.0108168 segundos
Uso de CPU: 5.1 %
Uso de memoria: 8212.234375 MB
Demanda de 25 a 14: 1 longitudes de onda
Calculando ruta (17/22)
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]

Ruta (17/22) de 25 a 14: [25, 22, 18, 15, 14]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.009057 segundos
Uso de CPU: 11.0 %
Uso de memoria: 8208.328125 MB
Demanda de 25 a 18: 2 longitudes de onda
Calculando ruta (18/22)
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8, 4, 3, 1, 2, 5]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 8, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 10, 8, 3, 4]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]

Ruta (18/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.0108719 segundos
Uso de CPU: -87.7 %
Uso de memoria: 8189.3125 MB
Calculando ruta (19/22)
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 5, 2, 1, 3, 8, 6]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]

Ruta (19/22) de 25 a 18: [25, 22, 18]
Métricas: atenuación = 5.4, OSNR = 13.8
Tiempo de cálculo: 1.006628 segundos
Uso de CPU: 12.3 %
Uso de memoria: 8164.640625 MB
Demanda de 25 a 20: 1 longitudes de onda
Calculando ruta (20/22)
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 22, 18, 15, 14, 10, 9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 22, 18, 15, 14, 10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 23, 19, 13, 11, 9, 10, 14, 12]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 23, 19, 13, 11, 9, 7, 6, 8, 4, 3, 1, 2, 5]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 22, 18, 15, 14, 10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 20. Ruta actual: [25, 22, 18, 15, 14, 10, 8, 3, 4]

Ruta (20/22) de 25 a 20: [25, 22, 18, 16, 20]
Métricas: atenuación = 10.8, OSNR = 13.8
Tiempo de cálculo: 1.0056598 segundos
Uso de CPU: 15.1 %
Uso de memoria: 8176.015625 MB
Demanda de 30 a 4: 1 longitudes de onda
Calculando ruta (21/22)
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 23, 19, 13, 11, 9, 10, 14, 15]
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 23, 19, 13, 12, 14, 15]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 29, 28, 27, 25, 23, 19, 13, 11, 9, 10, 14, 12]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]
Estancamiento en nodo 20, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 29, 28, 27, 25, 23, 19, 13, 12, 14, 15, 18, 16, 20]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 29, 28, 27, 25, 22, 18, 15, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 20, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 29, 28, 27, 25, 22, 18, 16, 20]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 29, 28, 27, 25, 22, 18, 15, 14, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 29, 28, 27, 25, 22, 18, 15, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 29, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 4. Ruta actual: [30, 20, 16, 18, 22, 25, 27, 28, 29]

Ruta (21/22) de 30 a 4: [30, 29, 28, 27, 25, 23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 4]
Métricas: atenuación = 61.7, OSNR = 3.8
Tiempo de cálculo: 1.0036709 segundos
Uso de CPU: 9.5 %
Uso de memoria: 8187.359375 MB
Demanda de 30 a 29: 1 longitudes de onda
Calculando ruta (22/22)
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 22, 25, 23, 26, 24, 21, 17, 13, 12, 14, 15]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 22, 25, 23, 26, 24, 21, 17, 13, 12, 14, 10, 8, 3, 4]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 15, 14, 10, 9, 11, 13, 12]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 15, 14, 10, 9, 7, 6, 8, 3, 4]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 15, 14, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 30 hasta 29. Ruta actual: [30, 20, 16, 18, 15, 14, 12, 13, 19, 23, 26, 24, 21, 17]

Ruta (22/22) de 30 a 29: [30, 29]
Métricas: atenuación = 2.7, OSNR = 13.8
Tiempo de cálculo: 1.0077009 segundos
Uso de CPU: 13.3 %
Uso de memoria: 8176.421875 MB


Fichero 'RefNet3_rutas_calcula_ruta_pso_opt_100U.csv' generado correctamente

Tiempo total de cálculo: 22.18 segundos
Uso total de CPU: 4.7 %
Uso total de memoria: 180607.84 MB
Tiempo promedio por demanda: 1.01 segundos
Uso promedio de CPU por demanda: 0.21 %
Uso promedio de memoria por demanda: 8209.45 MB

Encaminamiento calcula_ruta_pso_opt de las demandas de la matriz 100U completado con éxito
In [284]:
# Representar graficamente las rutas de las demandas de la matriz 100G U
# Algoritmo: PSO Óptimo

# Leer el df generado con los resultados de las rutas
df_resultados = pd.read_csv('RefNet3_rutas_calcula_ruta_pso_opt_100U.csv')  # Cambiar el nombre del archivo según escenarios de prueba!!!

# Verificar el formato de las rutas en el df
print("Verificando el formato de las rutas en el df ...")
print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Check: mostrar algunas filas para verificar

df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
if 'ruta_secundaria' in df_resultados.columns:
    df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

# Visualizar las rutas en el grafo
# grafo = grafo_red
nombre_algoritmo = 'PSO Óptimo'
visualizar_rutas(df_resultados, grafo, nombre_algoritmo)
Verificando el formato de las rutas en el df ...
   origen  destino       ruta_primaria  ruta_secundaria
0       8        3              [8, 3]              NaN
1       8        3              [8, 3]              NaN
2       8        7           [8, 6, 7]              NaN
3       9        3  [9, 7, 5, 2, 1, 3]              NaN
4      10        9             [10, 9]              NaN
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 3)]
Visualizando ruta de 8 a 7
Ruta primaria: [8, 6, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(8, 6), (6, 7)]
Visualizando ruta de 9 a 3
Ruta primaria: [9, 7, 5, 2, 1, 3]
Ruta secundaria: []
Aristas de la ruta primaria: [(9, 7), (7, 5), (5, 2), (2, 1), (1, 3)]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: []
Aristas de la ruta primaria: [(10, 9)]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: []
Aristas de la ruta primaria: [(12, 13), (13, 11), (11, 9), (9, 7)]
Visualizando ruta de 13 a 10
Ruta primaria: [13, 11, 9, 10]
Ruta secundaria: []
Aristas de la ruta primaria: [(13, 11), (11, 9), (9, 10)]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(14, 12), (12, 13)]
Visualizando ruta de 19 a 12
Ruta primaria: [19, 13, 12]
Ruta secundaria: []
Aristas de la ruta primaria: [(19, 13), (13, 12)]
Visualizando ruta de 21 a 16
Ruta primaria: [21, 17, 13, 12, 14, 15, 18, 16]
Ruta secundaria: []
Aristas de la ruta primaria: [(21, 17), (17, 13), (13, 12), (12, 14), (14, 15), (15, 18), (18, 16)]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 10), (10, 8)]
Visualizando ruta de 22 a 13
Ruta primaria: [22, 18, 15, 14, 12, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(22, 18), (18, 15), (15, 14), (14, 12), (12, 13)]
Visualizando ruta de 23 a 4
Ruta primaria: [23, 26, 24, 21, 17, 13, 12, 14, 10, 8, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 26), (26, 24), (24, 21), (21, 17), (17, 13), (13, 12), (12, 14), (14, 10), (10, 8), (8, 4)]
Visualizando ruta de 23 a 8
Ruta primaria: [23, 19, 13, 11, 9, 7, 6, 8]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 19), (19, 13), (13, 11), (11, 9), (9, 7), (7, 6), (6, 8)]
Visualizando ruta de 23 a 18
Ruta primaria: [23, 25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(23, 25), (25, 22), (22, 18)]
Visualizando ruta de 24 a 13
Ruta primaria: [24, 21, 17, 13]
Ruta secundaria: []
Aristas de la ruta primaria: [(24, 21), (21, 17), (17, 13)]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 15), (15, 14)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18)]
Visualizando ruta de 25 a 20
Ruta primaria: [25, 22, 18, 16, 20]
Ruta secundaria: []
Aristas de la ruta primaria: [(25, 22), (22, 18), (18, 16), (16, 20)]
Visualizando ruta de 30 a 4
Ruta primaria: [30, 29, 28, 27, 25, 23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 4]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29), (29, 28), (28, 27), (27, 25), (25, 23), (23, 19), (19, 13), (13, 11), (11, 9), (9, 7), (7, 5), (5, 2), (2, 1), (1, 3), (3, 4)]
Visualizando ruta de 30 a 29
Ruta primaria: [30, 29]
Ruta secundaria: []
Aristas de la ruta primaria: [(30, 29)]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/1350175463.py:12: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [285]:
# Gráfica interactiva de rutas, alternativa a la anterior
# Algoritmo: PSO Óptimo

# El df 'df_resultados', en un csv y generado anteriormente, contiene las rutas calculadas

# no olvidar reemplazar el archivo correcto dependiendo del escenario
resultados_rutas = 'RefNet3_rutas_calcula_ruta_pso_opt_100U.csv'

# Se genera el df a partir del csv
df_resultados = pd.read_csv(resultados_rutas)  

# Se convierten las rutas
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

# Gráfica interactiva de las rutas - PSO Óptimo
nombre_algoritmo = 'PSO Óptimo'
grafica_rutas_interactivas(grafo, df_resultados, nombre_algoritmo)
In [286]:
# Calcular la ocupacion (número de canales DWDM) por enlace - PSO Óptimo
nombre_algoritmo = 'pso_opt'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       6                      1                        0   
2        6       7                      1                        0   
3        9       7                      4                        0   
4        7       5                      2                        0   
5        5       2                      2                        0   
6        2       1                      2                        0   
7        1       3                      2                        0   
8       10       9                      1                        0   
9       12      13                      3                        0   
10      13      11                      4                        0   
11      11       9                      4                        0   
12       9      10                      1                        0   
13      14      12                      2                        0   
14      19      13                      3                        0   
15      13      12                      3                        0   
16      21      17                      3                        0   
17      17      13                      3                        0   
18      12      14                      2                        0   
19      14      15                      1                        0   
20      15      18                      1                        0   
21      18      16                      2                        0   
22      22      18                      7                        0   
23      18      15                      3                        0   
24      15      14                      3                        0   
25      14      10                      2                        0   
26      10       8                      2                        0   
27      23      26                      1                        0   
28      26      24                      1                        0   
29      24      21                      2                        0   
30       8       4                      1                        0   
31      23      19                      2                        0   
32       7       6                      1                        0   
33       6       8                      1                        0   
34      23      25                      1                        0   
35      25      22                      5                        0   
36      16      20                      1                        0   
37      30      29                      2                        0   
38      29      28                      1                        0   
39      28      27                      1                        0   
40      27      25                      1                        0   
41      25      23                      1                        0   
42       3       4                      1                        0   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               1               96  1.041667  
2               1               96  1.041667  
3               4               96  4.166667  
4               2               96  2.083333  
5               2               96  2.083333  
6               2               96  2.083333  
7               2               96  2.083333  
8               1               96  1.041667  
9               3               96  3.125000  
10              4               96  4.166667  
11              4               96  4.166667  
12              1               96  1.041667  
13              2               96  2.083333  
14              3               96  3.125000  
15              3               96  3.125000  
16              3               96  3.125000  
17              3               96  3.125000  
18              2               96  2.083333  
19              1               96  1.041667  
20              1               96  1.041667  
21              2               96  2.083333  
22              7               96  7.291667  
23              3               96  3.125000  
24              3               96  3.125000  
25              2               96  2.083333  
26              2               96  2.083333  
27              1               96  1.041667  
28              1               96  1.041667  
29              2               96  2.083333  
30              1               96  1.041667  
31              2               96  2.083333  
32              1               96  1.041667  
33              1               96  1.041667  
34              1               96  1.041667  
35              5               96  5.208333  
36              1               96  1.041667  
37              2               96  2.083333  
38              1               96  1.041667  
39              1               96  1.041667  
40              1               96  1.041667  
41              1               96  1.041667  
42              1               96  1.041667  
In [ ]:
 
In [ ]:
 
In [287]:
grafo = grafo_red
In [288]:
# Codigo auxiliar para verificar y representar graficamente el grafo y comprobar su estado
# Visualizar el grafo
pos = {node: (data['pos'][0], data['pos'][1]) for node, data in grafo.nodes(data=True)}
labels = {node: data['name'] for node, data in grafo.nodes(data=True)}

plt.figure(figsize=(12, 8))
nx.draw(grafo, pos, with_labels=True, labels=labels, node_size=500, node_color='skyblue', font_size=8, font_weight='bold')

# Añadir etiquetas a los enlaces (distancias) y asegurarse de que sean enteros
edge_labels = nx.get_edge_attributes(grafo, 'distancia')
edge_labels = {k: f"{v:.0f}" for k, v in edge_labels.items()}
nx.draw_networkx_edge_labels(grafo, pos, edge_labels=edge_labels)

plt.title('Topología de la Red Óptica (DWDM / ROADM)')
plt.show()

Cálculo de rutas 1+1 (disjuntas) con la matriz de demandas (tráfico) 100G protegido: RefNet3_TM_100P.csv

Funciones Auxiliares

In [289]:
# Última revisión de la función para corregir error lectura uso CPU
# Revision de codigo. Función actualizada.
# Función que calcula rutas disjuntas para demandas de trafico protegidas

def calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, algoritmo):
    resultados = []
    tiempo_total = 0
    cpu_total = 0
    memoria_total = 0
    num_demandas = 0
    demandas_por_dupla = {}

    for i in range(len(demandas)):
        for j in range(i):
            if demandas[i][j] > 0:
                num_demandas += int(demandas[i][j])
                dupla = (nodos[i], nodos[j])
                demandas_por_dupla[dupla] = int(demandas[i][j])

    print(f"\nTotal de demandas en la matriz {tipo_trafico}: {num_demandas}\n")

    demanda_actual = 1

    for i in range(len(demandas)):
        for j in range(i):
            if demandas[i][j] > 0:
                origen = nodos[i]
                destino = nodos[j]
                num_demandas_actual = int(demandas[i][j])
                print(f"Demanda de {origen} a {destino}: {num_demandas_actual} longitudes de onda")

                for _ in range(num_demandas_actual):
                    print(f"\nCalculando rutas ({demanda_actual}/{num_demandas})")
                    tiempo_inicio = time.time()
                    try:
                        # Calcular ruta primaria
                        ruta_primaria_resultado = ejecutar_algoritmo(grafo, origen, destino, algoritmo)
                        ruta_primaria = ruta_primaria_resultado['ruta']
                        estado_primaria = 'OK'
                        #print(f"Ruta primaria calculada: {ruta_primaria_resultado}")
                    except Exception as e:
                        ruta_primaria = []
                        estado_primaria = 'Fallo'
                        print(f"Error al calcular la ruta primaria de {origen} a {destino}: {e}")

                    # Verificar el contenido de ruta_primaria
                    if not ruta_primaria:
                        print(f"Ruta primaria está vacía para la demanda de {origen} a {destino}")

                    # Crear una copia del grafo y eliminar nodos de la ruta primaria excepto origen y destino
                    grafo_modificado = grafo.copy()
                    #print(f"Grafo antes de modificar: {grafo_modificado.nodes()}")

                    for nodo in ruta_primaria:
                        if nodo != origen and nodo != destino:
                            try:
                                grafo_modificado.remove_node(nodo)
                            except KeyError as e:
                                print(f"Error al eliminar el nodo {nodo} del grafo: {e}")
                                continue

                    # También eliminar el enlace directo entre origen y destino si existe
                    if grafo_modificado.has_edge(origen, destino):
                        grafo_modificado.remove_edge(origen, destino)

                    #print(f"Grafo modificado: {grafo_modificado.nodes()}")

                    try:
                        # Calcular ruta secundaria en el grafo modificado
                        ruta_secundaria_resultado = ejecutar_algoritmo(grafo_modificado, origen, destino, algoritmo)
                        ruta_secundaria = ruta_secundaria_resultado['ruta']
                        estado_secundaria = 'OK'
                        #print(f"Ruta secundaria calculada: {ruta_secundaria_resultado}")
                    except Exception as e:
                        ruta_secundaria = []
                        estado_secundaria = 'Fallo'
                        print(f"Error al calcular la ruta secundaria de {origen} a {destino}: {e}")

                    tiempo_final = time.time()
                    tiempo_calculo = tiempo_final - tiempo_inicio

                    # Evaluar rutas
                    distancia_primaria, atenuacion_primaria, osnr_primaria, retardo_primaria = evaluar_ruta(ruta_primaria, grafo)
                    distancia_secundaria, atenuacion_secundaria, osnr_secundaria, retardo_secundaria = evaluar_ruta(ruta_secundaria, grafo)
                    
                    psutil.cpu_percent(interval=None)  # Inicializar la medición de CPU
                    time.sleep(0.1)  # Esperar un pequeño intervalo para una medición precisa
                    uso_cpu = psutil.cpu_percent(interval=None)
                    
                    uso_memoria = psutil.virtual_memory().used / (1024 ** 2)  # Convertir a MB

                    tiempo_total += tiempo_calculo
                    cpu_total += uso_cpu
                    memoria_total += uso_memoria

                    print(f"\nRuta primaria ({demanda_actual}/{num_demandas}) de {origen} a {destino}: {ruta_primaria}")
                    print(f"Ruta secundaria ({demanda_actual}/{num_demandas}) de {origen} a {destino}: {ruta_secundaria}")
                    print(f"Métricas primaria: distancia = {distancia_primaria}, atenuación = {atenuacion_primaria}, OSNR = {osnr_primaria}, retardo = {retardo_primaria}")
                    print(f"Métricas secundaria: distancia = {distancia_secundaria}, atenuación = {atenuacion_secundaria}, OSNR = {osnr_secundaria}, retardo = {retardo_secundaria}")
                    print(f"Tiempo de cálculo: {round(tiempo_calculo, 7)} segundos")
                    print(f"Uso de CPU: {uso_cpu} %")
                    print(f"Uso de memoria: {round(uso_memoria, 2)} MB\n")

                    resultados.append({
                        'Id': demanda_actual,
                        'origen': origen,
                        'destino': destino,
                        'num_demandas': 1,
                        'ruta_primaria': ruta_primaria,
                        'distancia_primaria': distancia_primaria,
                        'atenuacion_primaria': atenuacion_primaria,
                        'osnr_primaria': osnr_primaria,
                        'retardo e2e_primaria': retardo_primaria,
                        'ruta_secundaria': ruta_secundaria if estado_secundaria == 'OK' else '',
                        'distancia_secundaria': distancia_secundaria if estado_secundaria == 'OK' else '',
                        'atenuacion_secundaria': atenuacion_secundaria if estado_secundaria == 'OK' else '',
                        'osnr_secundaria': osnr_secundaria if estado_secundaria == 'OK' else '',
                        'retardo e2e_secundaria': retardo_secundaria if estado_secundaria == 'OK' else '',
                        'Tipo': 'P',
                        'Algoritmo': algoritmo, 
                        'Estado': estado_primaria if estado_primaria == 'OK' else estado_secundaria,
                        'Tiempo': tiempo_calculo,
                        'CPU': uso_cpu,
                        'Memoria': uso_memoria
                    })
                    demanda_actual += 1

    # Guardar resultados en un df y fichero csv
    df_resultados = pd.DataFrame(resultados)
    csv_filename = f'RefNet3_rutas_disjuntas_{algoritmo}_{tipo_trafico}.csv'
    df_resultados.to_csv(csv_filename, index=False)
    print(f"\n\nFichero '{csv_filename}' generado correctamente")  
    #df_resultados.to_csv(f'RefNet3_rutas_disjuntas_{algoritmo}_{tipo_trafico}.csv', index=False)
    

    print(f"\nTiempo total de cálculo: {round(tiempo_total, 2)} segundos")
    print(f"Uso total de CPU: {round(cpu_total, 7)} %")
    print(f"Uso total de memoria: {round(memoria_total, 2)} MB")
    print(f"Tiempo promedio por demanda: {round(tiempo_total / num_demandas, 2)} segundos" if num_demandas > 0 else "Tiempo promedio por demanda: N/A")
    print(f"Uso promedio de CPU por demanda: {cpu_total / num_demandas} %" if num_demandas > 0 else "Uso promedio de CPU por demanda: N/A")
    print(f"Uso promedio de memoria por demanda: {round(memoria_total / num_demandas, 2)} MB" if num_demandas > 0 else "Uso promedio de memoria por demanda: N/A")

    if any(res['Estado'] == 'Fallo' for res in resultados):
        print("Errores en encaminamiento de rutas")
    else:
        print(f"\nEncaminamiento {algoritmo} de las demandas de la matriz {tipo_trafico} completado con éxito")
In [290]:
# Misma funcion que la utilizada para rutas simples
# Convierte el string con la ruta para poder procesarla
def convertir_ruta(ruta):
    if isinstance(ruta, str):
        try:
            ruta = eval(ruta)
        except (SyntaxError, NameError):
            return []
    if isinstance(ruta, list):
        return ruta
    return []

# Función para visualizar las rutas 
def visualizar_rutas(df, grafo, titulo):
    # Obtener posiciones de los nodos para la visualización
    pos = nx.get_node_attributes(grafo, 'pos')

    # Verificar que todas las posiciones estén definidas
    for nodo in grafo.nodes():
        if nodo not in pos:
            pos[nodo] = (0, 0)  # Asignar una posición por defecto para evitar errores

    # Crear listas de colores para rutas primarias y secundarias
    colores_primarias = plt.cm.get_cmap('tab20b', len(df)).colors
    colores_secundarias = plt.cm.get_cmap('tab20c', len(df)).colors

    plt.figure(figsize=(12, 8))
    nx.draw(grafo, pos, with_labels=True, node_size=500, node_color='skyblue', font_size=5, font_weight='bold')

    for i, row in df.iterrows():
        origen = row['origen']
        destino = row['destino']
        ruta_primaria = convertir_ruta(row['ruta_primaria'])
        ruta_secundaria = convertir_ruta(row.get('ruta_secundaria', []))
        color_primaria = colores_primarias[i % len(colores_primarias)]
        color_secundaria = colores_secundarias[i % len(colores_secundarias)]

        print(f"Visualizando ruta de {origen} a {destino}")
        print(f"Ruta primaria: {ruta_primaria}")
        print(f"Ruta secundaria: {ruta_secundaria}")

        # Dibujar la ruta primaria
        if ruta_primaria and len(ruta_primaria) > 1:
            edges_primaria = list(zip(ruta_primaria[:-1], ruta_primaria[1:]))
            nx.draw_networkx_edges(grafo, pos, edgelist=edges_primaria, edge_color=[color_primaria], width=2)

        # Dibujar la ruta secundaria si existe
        if ruta_secundaria and len(ruta_secundaria) > 1:
            edges_secundaria = list(zip(ruta_secundaria[:-1], ruta_secundaria[1:]))
            nx.draw_networkx_edges(grafo, pos, edgelist=edges_secundaria, edge_color=[color_secundaria], width=2, style='dashed')

    plt.title(titulo)
    plt.axis('off')  # Desactivar los ejes y la cuadrícula
    plt.show()

# Representa las rutas disjuntas de forma que un color es para las ruts primarias y otro para las rutas secundarias
def representar_rutas_disjuntas(grafo, archivo_csv, titulo):
    # Leer el df generado con los resultados de las rutas
    df_resultados = pd.read_csv(archivo_csv)  # No olvidar cambiar el nombre del archivo según el algoritmo !!!

    # Verificar el formato de las rutas en el df
    #print("Verificando el formato de las rutas en el dataframe...")
    #print(df_resultados[['origen', 'destino', 'ruta_primaria', 'ruta_secundaria']].head())  # Mostrar algunas filas para verificar

    df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(lambda x: convertir_ruta(x))
    if 'ruta_secundaria' in df_resultados.columns:
        df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(lambda x: convertir_ruta(x))

    # Visualizar las rutas en el grafo
    visualizar_rutas(df_resultados, grafo, titulo)
In [291]:
# Función para implementar representación gráfica de las rutas usando Plotly
# Está basada en la función definida para rutas simples
def grafica_rutas_disjuntas_interactivas(grafo, df_resultados, nombre_algoritmo):
    edge_x = []
    edge_y = []
    for edge in grafo.edges():
        x0, y0 = grafo.nodes[edge[0]]['pos']
        x1, y1 = grafo.nodes[edge[1]]['pos']
        edge_x.append(x0)
        edge_x.append(x1)
        edge_x.append(None)
        edge_y.append(y0)
        edge_y.append(y1)
        edge_y.append(None)

    edge_trace = go.Scatter(
        x=edge_x, y=edge_y,
        line=dict(width=0.5, color='#888'),
        hoverinfo='none',
        mode='lines',
        showlegend=False)

    node_x = []
    node_y = []
    for node in grafo.nodes():
        x, y = grafo.nodes[node]['pos']
        node_x.append(x)
        node_y.append(y)

    node_trace = go.Scatter(
        x=node_x, y=node_y,
        mode='markers+text',
        hoverinfo='text',
        marker=dict(
            showscale=True,
            colorscale='YlGnBu',
            reversescale=True,
            color=[],
            size=10,
            colorbar=dict(
                thickness=15,
                title=' ',
                xanchor='left',
                titleside='right'
            ),
            line_width=2),
        text=[f'ID: {node}<br>Name: {grafo.nodes[node]["name"]}' for node in grafo.nodes()],
        showlegend=False)

    fig = go.Figure(data=[edge_trace, node_trace],
                    layout=go.Layout(
                        title=f'<br>Red DWDM RefNet3 100G P {nombre_algoritmo}',
                        titlefont_size=16,
                        showlegend=True,
                        hovermode='closest',
                        margin=dict(b=20, l=5, r=5, t=40),
                        annotations=[dict(
                            text="Red DWDM",
                            showarrow=False,
                            xref="paper", yref="paper",
                            x=0.005, y=-0.002)],
                        xaxis=dict(showgrid=False, zeroline=False),
                        yaxis=dict(showgrid=False, zeroline=False))
                    )

    colores_primarias = ['red', 'green', 'blue', 'purple', 'orange']
    colores_secundarias = ['cyan', 'magenta', 'yellow', 'black', 'grey']
    color_index_primaria = 0
    color_index_secundaria = 0

    for i, row in df_resultados.iterrows():
        origen = row['origen']
        destino = row['destino']

        # Dibujar ruta primaria
        ruta_primaria = row['ruta_primaria']
        if isinstance(ruta_primaria, list) and len(ruta_primaria) > 0:
            ruta_x = []
            ruta_y = []
            for j in range(len(ruta_primaria) - 1):
                x0, y0 = grafo.nodes[ruta_primaria[j]]['pos']
                x1, y1 = grafo.nodes[ruta_primaria[j + 1]]['pos']
                ruta_x.append(x0)
                ruta_x.append(x1)
                ruta_x.append(None)
                ruta_y.append(y0)
                ruta_y.append(y1)
                ruta_y.append(None)
            
            color_primaria = colores_primarias[color_index_primaria % len(colores_primarias)]
            fig.add_trace(go.Scatter(
                x=ruta_x, y=ruta_y,
                line=dict(width=2, color=color_primaria),
                mode='lines',
                name=f"Ruta W {origen}->{destino}"))
            
            color_index_primaria += 1

        # Dibujar ruta secundaria
        ruta_secundaria = row['ruta_secundaria']
        if isinstance(ruta_secundaria, list) and len(ruta_secundaria) > 0:
            ruta_x = []
            ruta_y = []
            for j in range(len(ruta_secundaria) - 1):
                x0, y0 = grafo.nodes[ruta_secundaria[j]]['pos']
                x1, y1 = grafo.nodes[ruta_secundaria[j + 1]]['pos']
                ruta_x.append(x0)
                ruta_x.append(x1)
                ruta_x.append(None)
                ruta_y.append(y0)
                ruta_y.append(y1)
                ruta_y.append(None)
            
            color_secundaria = colores_secundarias[color_index_secundaria % len(colores_secundarias)]
            fig.add_trace(go.Scatter(
                x=ruta_x, y=ruta_y,
                line=dict(width=2, color=color_secundaria, dash='dash'),
                mode='lines',
                name=f"Ruta P {origen}->{destino}"))
            
            color_index_secundaria += 1

    fig.show()
In [292]:
# Función que calcula el numero de canales primarios y secundarios DWDM por enlace
def calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo):
    # Inicializa un diccionario para contar los canales por enlace
    # El número máximo de canales es un parámetro y puede tomar 3 valores: 80, 96, 160.
    contadores_canales = {}

    # Inicializa un diccionario para contar los canales primarios y secundarios por enlace
    contadores_canales_primarios = {}
    contadores_canales_secundarios = {}

    # Itera sobre cada fila del df para contar los canales por enlace
    for i, row in df_resultados.iterrows():
        for ruta_col in ['ruta_primaria', 'ruta_secundaria']:
            ruta = row[ruta_col]
            if isinstance(ruta, list) and len(ruta) > 0:
                for j in range(len(ruta) - 1):
                    enlace = (ruta[j], ruta[j + 1])
                    if enlace not in contadores_canales:
                        contadores_canales[enlace] = 0
                    contadores_canales[enlace] += 1

                    if ruta_col == 'ruta_primaria':
                        if enlace not in contadores_canales_primarios:
                            contadores_canales_primarios[enlace] = 0
                        contadores_canales_primarios[enlace] += 1
                    elif ruta_col == 'ruta_secundaria':
                        if enlace not in contadores_canales_secundarios:
                            contadores_canales_secundarios[enlace] = 0
                        contadores_canales_secundarios[enlace] += 1

    # Genera el df con la ocupación de los canales DWDM
    data = []
    for enlace, num_canales in contadores_canales.items():
        num_canales_primarios = contadores_canales_primarios.get(enlace, 0)
        num_canales_secundarios = contadores_canales_secundarios.get(enlace, 0)
        ocupacion = (num_canales / num_ch_dwdm) * 100
        data.append([enlace[0], enlace[1], num_canales_primarios, num_canales_secundarios, num_canales, num_ch_dwdm, ocupacion])

    df_ocupacion_canales = pd.DataFrame(data, columns=['ROADM1', 'ROADM2', 'Num Canales Primarios', 'Num Canales Secundarios', 'Total Canales', 'Num Max CH DWDM', '%'])

    # Guarda el df en un archivo csv
    df_ocupacion_canales.to_csv(f'RefNet3_100P_{nombre_algoritmo}_nch_link.csv', index=False)

    # Muestra el df resultante
    print(df_ocupacion_canales)
In [293]:
# Seleccionar la matriz de demandas de 100G con protección.
matriz = 'RefNet3/RefNet3_TM_100P.csv'

Algoritmo Dijkstra 1+1

In [294]:
# Test de validación para una matriz protegida (P)
# Algoritmo Dijkstra 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_dijkstra')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 0.2068129 segundos
Uso de CPU: 28.2 %
Uso de memoria: 8175.36 MB


Calculando rutas (2/10)

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 0.2112577 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8175.52 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 14, 12, 13, 11, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.0
Tiempo de cálculo: 0.2099147 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8175.52 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 0.2082732 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8210.92 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 0.2092726 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8249.61 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 0.20469 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8251.78 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 0.21228 segundos
Uso de CPU: 9.3 %
Uso de memoria: 8251.97 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 19, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 500.0, atenuación = 26.6, OSNR = 1, retardo = 3.5
Tiempo de cálculo: 0.2081432 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8250.03 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 0.2074921 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8240.45 MB


Calculando rutas (10/10)

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 0.2072659 segundos
Uso de CPU: 12.5 %
Uso de memoria: 8236.39 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_dijkstra_100P.csv' generado correctamente

Tiempo total de cálculo: 2.09 segundos
Uso total de CPU: 50.0 %
Uso total de memoria: 82217.55 MB
Tiempo promedio por demanda: 0.21 segundos
Uso promedio de CPU por demanda: 5.0 %
Uso promedio de memoria por demanda: 8221.75 MB

Encaminamiento calcula_ruta_dijkstra de las demandas de la matriz 100P completado con éxito
In [295]:
# Representar las rutas disjuntas Dijkstra 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_dijkstra_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P Dijkstra' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 14, 12, 13, 11, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 19, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [296]:
# Visualizar las rutas disjuntas de Dijkstra 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'Dijkstra'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [297]:
# Calcular la ocupacion (número de canales DWDM) por enlace - Dijkstra 1+1

nombre_algoritmo = 'dijkstra'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10      14                      0                        1   
5       14      12                      1                        2   
6       12      13                      2                        2   
7       13      11                      1                        2   
8       11       9                      1                        2   
9        9       7                      1                        1   
10      12      14                      0                        2   
11      14      10                      1                        2   
12      10       8                      1                        1   
13       8       6                      0                        1   
14       6       7                      0                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        2   
23      19      13                      1                        2   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      13      12                      0                        1   
28      25      27                      0                        2   
29      27      28                      0                        2   
30      28      29                      0                        2   
31      29      30                      0                        2   
32      30      20                      0                        2   
33      20      16                      0                        2   
34      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               1               96  1.041667  
5               3               96  3.125000  
6               4               96  4.166667  
7               3               96  3.125000  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              1               96  1.041667  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              3               96  3.125000  
23              3               96  3.125000  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              2               96  2.083333  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              2               96  2.083333  
33              2               96  2.083333  
34              2               96  2.083333  

Algoritmo Bellman-Ford 1+1

In [298]:
# Test de validación para una matriz protegida (P)
# Algoritmo Bellman-Ford 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_bellman_ford')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 0.0006583 segundos
Uso de CPU: 15.3 %
Uso de memoria: 8264.17 MB


Calculando rutas (2/10)

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 0.0014021 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 14, 12, 13, 11, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.0
Tiempo de cálculo: 0.0010078 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 0.0015192 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 0.003444 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 0.001339 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 0.0010612 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 19, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 500.0, atenuación = 26.6, OSNR = 1, retardo = 3.5
Tiempo de cálculo: 0.001013 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 0.0016472 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8264.17 MB


Calculando rutas (10/10)

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 0.001718 segundos
Uso de CPU: 11.4 %
Uso de memoria: 8265.33 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_bellman_ford_100P.csv' generado correctamente

Tiempo total de cálculo: 0.01 segundos
Uso total de CPU: 26.7 %
Uso total de memoria: 82642.88 MB
Tiempo promedio por demanda: 0.0 segundos
Uso promedio de CPU por demanda: 2.6700000000000004 %
Uso promedio de memoria por demanda: 8264.29 MB

Encaminamiento calcula_ruta_bellman_ford de las demandas de la matriz 100P completado con éxito
In [299]:
# Representar las rutas disjuntas Bellman-Ford 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_bellman_ford_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P Bellman-Ford' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 14, 12, 13, 11, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 19, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [300]:
# Visualizar las rutas disjuntas de Bellman-Ford 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'Bellman-Ford'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [301]:
# Calcular la ocupacion (número de canales DWDM) por enlace - Bellman-Ford 1+1

nombre_algoritmo = 'bellman_ford'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10      14                      0                        1   
5       14      12                      1                        2   
6       12      13                      2                        2   
7       13      11                      1                        2   
8       11       9                      1                        2   
9        9       7                      1                        1   
10      12      14                      0                        2   
11      14      10                      1                        2   
12      10       8                      1                        1   
13       8       6                      0                        1   
14       6       7                      0                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        2   
23      19      13                      1                        2   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      13      12                      0                        1   
28      25      27                      0                        2   
29      27      28                      0                        2   
30      28      29                      0                        2   
31      29      30                      0                        2   
32      30      20                      0                        2   
33      20      16                      0                        2   
34      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               1               96  1.041667  
5               3               96  3.125000  
6               4               96  4.166667  
7               3               96  3.125000  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              1               96  1.041667  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              3               96  3.125000  
23              3               96  3.125000  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              2               96  2.083333  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              2               96  2.083333  
33              2               96  2.083333  
34              2               96  2.083333  

Algoritmo A(*) heurística euclídea 1+1

In [302]:
# Test de validación para una matriz protegida (P)
# Algoritmo A* heurística ecuclídea 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_a_star_euclidea')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 0.0004487 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8295.22 MB


Calculando rutas (2/10)

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 0.0002871 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8307.77 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 8, 6, 7, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 420.0, atenuación = 22.4, OSNR = 1, retardo = 2.9
Tiempo de cálculo: 0.000257 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 0.0002451 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 0.000226 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 0.000293 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 0.0003488 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 19, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 500.0, atenuación = 26.6, OSNR = 1, retardo = 3.5
Tiempo de cálculo: 0.0007119 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 0.000941 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8350.16 MB


Calculando rutas (10/10)

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 0.0017879 segundos
Uso de CPU: 18.5 %
Uso de memoria: 8314.12 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_a_star_euclidea_100P.csv' generado correctamente

Tiempo total de cálculo: 0.01 segundos
Uso total de CPU: 18.5 %
Uso total de memoria: 83368.2 MB
Tiempo promedio por demanda: 0.0 segundos
Uso promedio de CPU por demanda: 1.85 %
Uso promedio de memoria por demanda: 8336.82 MB

Encaminamiento calcula_ruta_a_star_euclidea de las demandas de la matriz 100P completado con éxito
In [303]:
# Representar las rutas disjuntas A* heurística euclídea 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_a_star_euclidea_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P A* heurística euclídea' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 8, 6, 7, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 19, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [304]:
# Visualizar las rutas disjuntas de A* heurística euclídea 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'A* heuristica euclidea'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [305]:
# Calcular la ocupacion (número de canales DWDM) por enlace - A* heurística euclídea 1+1

nombre_algoritmo = 'a_star_euclidea'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10       8                      1                        2   
5        8       6                      0                        2   
6        6       7                      0                        2   
7        7       9                      0                        1   
8       12      13                      2                        1   
9       13      11                      1                        1   
10      11       9                      1                        1   
11       9       7                      1                        1   
12      12      14                      0                        2   
13      14      10                      1                        2   
14      14      12                      1                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        2   
23      19      13                      1                        2   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      13      12                      0                        1   
28      25      27                      0                        2   
29      27      28                      0                        2   
30      28      29                      0                        2   
31      29      30                      0                        2   
32      30      20                      0                        2   
33      20      16                      0                        2   
34      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               3               96  3.125000  
5               2               96  2.083333  
6               2               96  2.083333  
7               1               96  1.041667  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              2               96  2.083333  
12              2               96  2.083333  
13              3               96  3.125000  
14              2               96  2.083333  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              3               96  3.125000  
23              3               96  3.125000  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              2               96  2.083333  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              2               96  2.083333  
33              2               96  2.083333  
34              2               96  2.083333  

Algoritmo GA Optimizado 1+1

In [306]:
# Test de validación para una matriz protegida (P)
# Algoritmo GA 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_ga_opt')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)
Generación inicial: [[8, 3], [8, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 3], [8, 3], [8, 3], [8, 4, 3], [8, 3]]
Generación 1/50
Población de la generación 1: [[8, 3], [8, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 2/50
Población de la generación 2: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 3/50
Población de la generación 3: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 4/50
Población de la generación 4: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 5/50
Población de la generación 5: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 6/50
Población de la generación 6: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 7/50
Población de la generación 7: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 8/50
Población de la generación 8: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 9/50
Población de la generación 9: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 10/50
Población de la generación 10: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 11/50
Población de la generación 11: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 12/50
Población de la generación 12: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 13/50
Población de la generación 13: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 14/50
Población de la generación 14: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 15/50
Población de la generación 15: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 16/50
Población de la generación 16: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 17/50
Población de la generación 17: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 18/50
Población de la generación 18: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 19/50
Población de la generación 19: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 20/50
Población de la generación 20: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 21/50
Población de la generación 21: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 22/50
Población de la generación 22: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 23/50
Población de la generación 23: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 24/50
Población de la generación 24: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 25/50
Población de la generación 25: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 26/50
Población de la generación 26: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 27/50
Población de la generación 27: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 28/50
Población de la generación 28: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 29/50
Población de la generación 29: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 30/50
Población de la generación 30: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 31/50
Población de la generación 31: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 32/50
Población de la generación 32: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 33/50
Población de la generación 33: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 34/50
Población de la generación 34: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 35/50
Población de la generación 35: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 36/50
Población de la generación 36: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 37/50
Población de la generación 37: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 38/50
Población de la generación 38: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 39/50
Población de la generación 39: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 40/50
Población de la generación 40: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 41/50
Población de la generación 41: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 42/50
Población de la generación 42: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 43/50
Población de la generación 43: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 44/50
Población de la generación 44: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 45/50
Población de la generación 45: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 46/50
Población de la generación 46: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 47/50
Población de la generación 47: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 48/50
Población de la generación 48: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 49/50
Población de la generación 49: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 50/50
Población de la generación 50: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación inicial: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Generación 1/50
Población de la generación 1: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 2/50
Población de la generación 2: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 3/50
Población de la generación 3: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 4/50
Población de la generación 4: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 5/50
Población de la generación 5: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 6/50
Población de la generación 6: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 7/50
Población de la generación 7: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 8/50
Población de la generación 8: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 9/50
Población de la generación 9: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 10/50
Población de la generación 10: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 11/50
Población de la generación 11: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 12/50
Población de la generación 12: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 13/50
Población de la generación 13: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 14/50
Población de la generación 14: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 15/50
Población de la generación 15: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 16/50
Población de la generación 16: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 17/50
Población de la generación 17: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 18/50
Población de la generación 18: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 19/50
Población de la generación 19: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 20/50
Población de la generación 20: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 21/50
Población de la generación 21: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 22/50
Población de la generación 22: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 23/50
Población de la generación 23: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 24/50
Población de la generación 24: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 25/50
Población de la generación 25: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 26/50
Población de la generación 26: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 27/50
Población de la generación 27: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 28/50
Población de la generación 28: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 29/50
Población de la generación 29: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 30/50
Población de la generación 30: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 31/50
Población de la generación 31: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 32/50
Población de la generación 32: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 33/50
Población de la generación 33: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 34/50
Población de la generación 34: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 35/50
Población de la generación 35: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 36/50
Población de la generación 36: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 37/50
Población de la generación 37: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 38/50
Población de la generación 38: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 39/50
Población de la generación 39: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 40/50
Población de la generación 40: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 41/50
Población de la generación 41: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 42/50
Población de la generación 42: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 43/50
Población de la generación 43: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 44/50
Población de la generación 44: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 45/50
Población de la generación 45: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 46/50
Población de la generación 46: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 47/50
Población de la generación 47: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 48/50
Población de la generación 48: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 49/50
Población de la generación 49: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 50/50
Población de la generación 50: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.1135421 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8274.53 MB


Calculando rutas (2/10)
Generación inicial: [[8, 3], [8, 3], [8, 4, 3], [8, 4, 3], [8, 3], [8, 4, 3], [8, 3], [8, 4, 3], [8, 4, 3], [8, 3]]
Generación 1/50
Población de la generación 1: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 2/50
Población de la generación 2: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 3/50
Población de la generación 3: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 4/50
Población de la generación 4: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 5/50
Población de la generación 5: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 6/50
Población de la generación 6: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 7/50
Población de la generación 7: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 8/50
Población de la generación 8: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 9/50
Población de la generación 9: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 10/50
Población de la generación 10: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 11/50
Población de la generación 11: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 12/50
Población de la generación 12: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 13/50
Población de la generación 13: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 14/50
Población de la generación 14: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 15/50
Población de la generación 15: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 16/50
Población de la generación 16: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 17/50
Población de la generación 17: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 18/50
Población de la generación 18: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 19/50
Población de la generación 19: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 20/50
Población de la generación 20: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 21/50
Población de la generación 21: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 22/50
Población de la generación 22: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 23/50
Población de la generación 23: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 24/50
Población de la generación 24: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 25/50
Población de la generación 25: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 26/50
Población de la generación 26: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 27/50
Población de la generación 27: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 28/50
Población de la generación 28: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 29/50
Población de la generación 29: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 30/50
Población de la generación 30: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 31/50
Población de la generación 31: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 32/50
Población de la generación 32: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 33/50
Población de la generación 33: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 34/50
Población de la generación 34: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 35/50
Población de la generación 35: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 36/50
Población de la generación 36: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 37/50
Población de la generación 37: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 38/50
Población de la generación 38: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 39/50
Población de la generación 39: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 40/50
Población de la generación 40: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 41/50
Población de la generación 41: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 42/50
Población de la generación 42: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 43/50
Población de la generación 43: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 44/50
Población de la generación 44: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 45/50
Población de la generación 45: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 46/50
Población de la generación 46: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 47/50
Población de la generación 47: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 48/50
Población de la generación 48: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 49/50
Población de la generación 49: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación 50/50
Población de la generación 50: [[8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3], [8, 3]]
Mejor ruta hasta ahora: [8, 3] con evaluación (200.0, 10.6, 3.8, 1.2)
Generación inicial: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Generación 1/50
Población de la generación 1: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 2/50
Población de la generación 2: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 3/50
Población de la generación 3: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 4/50
Población de la generación 4: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 5/50
Población de la generación 5: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 6/50
Población de la generación 6: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 7/50
Población de la generación 7: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 8/50
Población de la generación 8: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 9/50
Población de la generación 9: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 10/50
Población de la generación 10: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 11/50
Población de la generación 11: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 12/50
Población de la generación 12: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 13/50
Población de la generación 13: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 14/50
Población de la generación 14: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 15/50
Población de la generación 15: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 16/50
Población de la generación 16: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 17/50
Población de la generación 17: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 18/50
Población de la generación 18: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 19/50
Población de la generación 19: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 20/50
Población de la generación 20: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 21/50
Población de la generación 21: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 22/50
Población de la generación 22: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 23/50
Población de la generación 23: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 24/50
Población de la generación 24: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 25/50
Población de la generación 25: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 26/50
Población de la generación 26: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 27/50
Población de la generación 27: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 28/50
Población de la generación 28: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 29/50
Población de la generación 29: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 30/50
Población de la generación 30: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 31/50
Población de la generación 31: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 32/50
Población de la generación 32: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 33/50
Población de la generación 33: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 34/50
Población de la generación 34: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 35/50
Población de la generación 35: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 36/50
Población de la generación 36: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 37/50
Población de la generación 37: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 38/50
Población de la generación 38: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 39/50
Población de la generación 39: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 40/50
Población de la generación 40: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 41/50
Población de la generación 41: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 42/50
Población de la generación 42: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 43/50
Población de la generación 43: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 44/50
Población de la generación 44: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 45/50
Población de la generación 45: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 46/50
Población de la generación 46: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 47/50
Población de la generación 47: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 48/50
Población de la generación 48: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 49/50
Población de la generación 49: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)
Generación 50/50
Población de la generación 50: [[8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3], [8, 4, 3]]
Mejor ruta hasta ahora: [8, 4, 3] con evaluación (400.0, 21.2, 3.8, 2.4)

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.1352289 segundos
Uso de CPU: 10.7 %
Uso de memoria: 8216.03 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)
Generación inicial: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 14, 12, 13, 11, 9], [10, 9], [10, 9], [10, 9]]
Generación 1/50
Población de la generación 1: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 2/50
Población de la generación 2: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 3/50
Población de la generación 3: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 4/50
Población de la generación 4: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 5/50
Población de la generación 5: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 6/50
Población de la generación 6: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 7/50
Población de la generación 7: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 8/50
Población de la generación 8: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 9/50
Población de la generación 9: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 10/50
Población de la generación 10: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 11/50
Población de la generación 11: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 12/50
Población de la generación 12: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 13/50
Población de la generación 13: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 14/50
Población de la generación 14: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 15/50
Población de la generación 15: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 16/50
Población de la generación 16: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 17/50
Población de la generación 17: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 18/50
Población de la generación 18: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 19/50
Población de la generación 19: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 20/50
Población de la generación 20: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 21/50
Población de la generación 21: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 22/50
Población de la generación 22: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 23/50
Población de la generación 23: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 24/50
Población de la generación 24: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 25/50
Población de la generación 25: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 26/50
Población de la generación 26: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 27/50
Población de la generación 27: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 28/50
Población de la generación 28: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 29/50
Población de la generación 29: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 30/50
Población de la generación 30: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 31/50
Población de la generación 31: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 32/50
Población de la generación 32: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 33/50
Población de la generación 33: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 34/50
Población de la generación 34: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 35/50
Población de la generación 35: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 36/50
Población de la generación 36: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 37/50
Población de la generación 37: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 38/50
Población de la generación 38: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 39/50
Población de la generación 39: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 40/50
Población de la generación 40: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 41/50
Población de la generación 41: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 42/50
Población de la generación 42: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 43/50
Población de la generación 43: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 44/50
Población de la generación 44: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 45/50
Población de la generación 45: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 46/50
Población de la generación 46: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 47/50
Población de la generación 47: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 48/50
Población de la generación 48: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 49/50
Población de la generación 49: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación 50/50
Población de la generación 50: [[10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9], [10, 9]]
Mejor ruta hasta ahora: [10, 9] con evaluación (150.0, 7.9, 1, 1.0)
Generación inicial: [[10, 8, 6, 7, 9], [10, 8, 6, 7, 9], [10, 8, 4, 3, 1, 2, 5, 7, 9], [10, 8, 3, 1, 2, 5, 7, 9], [10, 8, 6, 7, 9], [10, 8, 6, 7, 9], [10, 14, 12, 13, 11, 9], [10, 8, 6, 7, 9], [10, 8, 6, 7, 9], [10, 14, 12, 13, 11, 9]]
Generación 1/50
Población de la generación 1: [[10, 8, 6, 7, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 8, 6, 7, 9], [10, 8, 6, 7, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 2/50
Población de la generación 2: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 3/50
Población de la generación 3: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 4/50
Población de la generación 4: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 5/50
Población de la generación 5: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 6/50
Población de la generación 6: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 7/50
Población de la generación 7: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 8/50
Población de la generación 8: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 9/50
Población de la generación 9: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 10/50
Población de la generación 10: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 11/50
Población de la generación 11: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 12/50
Población de la generación 12: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 13/50
Población de la generación 13: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 14/50
Población de la generación 14: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 15/50
Población de la generación 15: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 16/50
Población de la generación 16: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 17/50
Población de la generación 17: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 18/50
Población de la generación 18: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 19/50
Población de la generación 19: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 20/50
Población de la generación 20: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 21/50
Población de la generación 21: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 22/50
Población de la generación 22: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 23/50
Población de la generación 23: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 24/50
Población de la generación 24: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 25/50
Población de la generación 25: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 26/50
Población de la generación 26: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 27/50
Población de la generación 27: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 28/50
Población de la generación 28: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 29/50
Población de la generación 29: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 30/50
Población de la generación 30: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 31/50
Población de la generación 31: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 32/50
Población de la generación 32: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 33/50
Población de la generación 33: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 34/50
Población de la generación 34: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 35/50
Población de la generación 35: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 36/50
Población de la generación 36: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 37/50
Población de la generación 37: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 38/50
Población de la generación 38: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 39/50
Población de la generación 39: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 40/50
Población de la generación 40: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 41/50
Población de la generación 41: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 42/50
Población de la generación 42: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 43/50
Población de la generación 43: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 44/50
Población de la generación 44: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 45/50
Población de la generación 45: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 46/50
Población de la generación 46: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 47/50
Población de la generación 47: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 48/50
Población de la generación 48: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 49/50
Población de la generación 49: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)
Generación 50/50
Población de la generación 50: [[10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9], [10, 14, 12, 13, 11, 9]]
Mejor ruta hasta ahora: [10, 14, 12, 13, 11, 9] con evaluación (400.0, 21.4, 1, 3.0)

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 14, 12, 13, 11, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.0
Tiempo de cálculo: 2.1375251 segundos
Uso de CPU: 15.7 %
Uso de memoria: 8211.5 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)
Generación inicial: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 10, 8, 6, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 14, 10, 9, 7], [12, 14, 10, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 14, 10, 9, 7]]
Generación 1/50
Población de la generación 1: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 14, 10, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 2/50
Población de la generación 2: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 3/50
Población de la generación 3: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 4/50
Población de la generación 4: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 5/50
Población de la generación 5: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 6/50
Población de la generación 6: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 7/50
Población de la generación 7: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 8/50
Población de la generación 8: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 9/50
Población de la generación 9: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 10/50
Población de la generación 10: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 11/50
Población de la generación 11: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 12/50
Población de la generación 12: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 13/50
Población de la generación 13: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 14/50
Población de la generación 14: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 15/50
Población de la generación 15: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 16/50
Población de la generación 16: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 17/50
Población de la generación 17: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 18/50
Población de la generación 18: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 19/50
Población de la generación 19: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 20/50
Población de la generación 20: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 21/50
Población de la generación 21: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 22/50
Población de la generación 22: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 23/50
Población de la generación 23: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 24/50
Población de la generación 24: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 25/50
Población de la generación 25: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 26/50
Población de la generación 26: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 27/50
Población de la generación 27: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 28/50
Población de la generación 28: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 29/50
Población de la generación 29: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 30/50
Población de la generación 30: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 31/50
Población de la generación 31: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 32/50
Población de la generación 32: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 33/50
Población de la generación 33: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 34/50
Población de la generación 34: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 35/50
Población de la generación 35: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 36/50
Población de la generación 36: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 37/50
Población de la generación 37: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 38/50
Población de la generación 38: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 39/50
Población de la generación 39: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 40/50
Población de la generación 40: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 41/50
Población de la generación 41: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 42/50
Población de la generación 42: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 43/50
Población de la generación 43: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 44/50
Población de la generación 44: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 45/50
Población de la generación 45: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 46/50
Población de la generación 46: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 47/50
Población de la generación 47: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 48/50
Población de la generación 48: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 49/50
Población de la generación 49: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación 50/50
Población de la generación 50: [[12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7], [12, 13, 11, 9, 7]]
Mejor ruta hasta ahora: [12, 13, 11, 9, 7] con evaluación (250.0, 13.5, 13.6, 2.1)
Generación inicial: [[12, 14, 10, 8, 4, 3, 1, 2, 5, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 4, 3, 1, 2, 5, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Generación 1/50
Población de la generación 1: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 2/50
Población de la generación 2: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 3/50
Población de la generación 3: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 4/50
Población de la generación 4: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 5/50
Población de la generación 5: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 6/50
Población de la generación 6: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 7/50
Población de la generación 7: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 8/50
Población de la generación 8: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 9/50
Población de la generación 9: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 10/50
Población de la generación 10: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 11/50
Población de la generación 11: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 12/50
Población de la generación 12: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 13/50
Población de la generación 13: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 14/50
Población de la generación 14: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 15/50
Población de la generación 15: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 16/50
Población de la generación 16: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 17/50
Población de la generación 17: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 18/50
Población de la generación 18: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 19/50
Población de la generación 19: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 20/50
Población de la generación 20: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 21/50
Población de la generación 21: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 22/50
Población de la generación 22: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 23/50
Población de la generación 23: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 24/50
Población de la generación 24: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 25/50
Población de la generación 25: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 26/50
Población de la generación 26: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 27/50
Población de la generación 27: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 28/50
Población de la generación 28: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 29/50
Población de la generación 29: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 30/50
Población de la generación 30: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 31/50
Población de la generación 31: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 32/50
Población de la generación 32: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 33/50
Población de la generación 33: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 34/50
Población de la generación 34: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 35/50
Población de la generación 35: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 36/50
Población de la generación 36: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 37/50
Población de la generación 37: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 38/50
Población de la generación 38: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 39/50
Población de la generación 39: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 40/50
Población de la generación 40: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 41/50
Población de la generación 41: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 42/50
Población de la generación 42: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 43/50
Población de la generación 43: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 44/50
Población de la generación 44: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 45/50
Población de la generación 45: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 46/50
Población de la generación 46: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 47/50
Población de la generación 47: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 48/50
Población de la generación 48: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 49/50
Población de la generación 49: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)
Generación 50/50
Población de la generación 50: [[12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7], [12, 14, 10, 8, 6, 7]]
Mejor ruta hasta ahora: [12, 14, 10, 8, 6, 7] con evaluación (570.0, 30.3, 1, 3.8)

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 2.1565588 segundos
Uso de CPU: 19.3 %
Uso de memoria: 8215.69 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)
Generación inicial: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Generación 1/50
Población de la generación 1: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 2/50
Población de la generación 2: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 3/50
Población de la generación 3: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 4/50
Población de la generación 4: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 5/50
Población de la generación 5: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 6/50
Población de la generación 6: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 7/50
Población de la generación 7: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 8/50
Población de la generación 8: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 9/50
Población de la generación 9: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 10/50
Población de la generación 10: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 11/50
Población de la generación 11: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 12/50
Población de la generación 12: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 13/50
Población de la generación 13: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 14/50
Población de la generación 14: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 15/50
Población de la generación 15: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 16/50
Población de la generación 16: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 17/50
Población de la generación 17: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 18/50
Población de la generación 18: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 19/50
Población de la generación 19: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 20/50
Población de la generación 20: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 21/50
Población de la generación 21: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 22/50
Población de la generación 22: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 23/50
Población de la generación 23: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 24/50
Población de la generación 24: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 25/50
Población de la generación 25: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 26/50
Población de la generación 26: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 27/50
Población de la generación 27: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 28/50
Población de la generación 28: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 29/50
Población de la generación 29: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 30/50
Población de la generación 30: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 31/50
Población de la generación 31: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 32/50
Población de la generación 32: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 33/50
Población de la generación 33: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 34/50
Población de la generación 34: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 35/50
Población de la generación 35: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 36/50
Población de la generación 36: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 37/50
Población de la generación 37: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 38/50
Población de la generación 38: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 39/50
Población de la generación 39: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 40/50
Población de la generación 40: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 41/50
Población de la generación 41: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 42/50
Población de la generación 42: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 43/50
Población de la generación 43: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 44/50
Población de la generación 44: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 45/50
Población de la generación 45: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 46/50
Población de la generación 46: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 47/50
Población de la generación 47: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 48/50
Población de la generación 48: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 49/50
Población de la generación 49: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación 50/50
Población de la generación 50: [[14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13], [14, 12, 13]]
Mejor ruta hasta ahora: [14, 12, 13] con evaluación (200.0, 10.6, 1, 1.4)
Generación inicial: [[14, 10, 9, 11, 13], [14, 15, 18, 22, 25, 23, 26, 24, 21, 17, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 15, 18, 22, 25, 23, 19, 13]]
Generación 1/50
Población de la generación 1: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 2/50
Población de la generación 2: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 3/50
Población de la generación 3: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 4/50
Población de la generación 4: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 5/50
Población de la generación 5: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 6/50
Población de la generación 6: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 7/50
Población de la generación 7: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 8/50
Población de la generación 8: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 9/50
Población de la generación 9: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 10/50
Población de la generación 10: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 11/50
Población de la generación 11: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 12/50
Población de la generación 12: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 13/50
Población de la generación 13: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 14/50
Población de la generación 14: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 15/50
Población de la generación 15: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 16/50
Población de la generación 16: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 17/50
Población de la generación 17: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 18/50
Población de la generación 18: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 19/50
Población de la generación 19: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 20/50
Población de la generación 20: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 21/50
Población de la generación 21: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 22/50
Población de la generación 22: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 23/50
Población de la generación 23: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 24/50
Población de la generación 24: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 25/50
Población de la generación 25: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 26/50
Población de la generación 26: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 27/50
Población de la generación 27: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 28/50
Población de la generación 28: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 29/50
Población de la generación 29: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 30/50
Población de la generación 30: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 31/50
Población de la generación 31: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 32/50
Población de la generación 32: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 33/50
Población de la generación 33: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 34/50
Población de la generación 34: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 35/50
Población de la generación 35: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 36/50
Población de la generación 36: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 37/50
Población de la generación 37: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 38/50
Población de la generación 38: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 39/50
Población de la generación 39: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 40/50
Población de la generación 40: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 41/50
Población de la generación 41: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 42/50
Población de la generación 42: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 43/50
Población de la generación 43: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 44/50
Población de la generación 44: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 45/50
Población de la generación 45: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 46/50
Población de la generación 46: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 47/50
Población de la generación 47: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 48/50
Población de la generación 48: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 49/50
Población de la generación 49: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)
Generación 50/50
Población de la generación 50: [[14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13], [14, 10, 9, 11, 13]]
Mejor ruta hasta ahora: [14, 10, 9, 11, 13] con evaluación (350.0, 18.7, 1, 2.6)

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 2.1082828 segundos
Uso de CPU: 13.4 %
Uso de memoria: 8207.25 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)
Generación inicial: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 25, 23, 19, 13, 11, 9, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 25, 23, 19, 13, 11, 9, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 9, 7, 6, 8]]
Generación 1/50
Población de la generación 1: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 2/50
Población de la generación 2: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 3/50
Población de la generación 3: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 4/50
Población de la generación 4: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 5/50
Población de la generación 5: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 6/50
Población de la generación 6: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 7/50
Población de la generación 7: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 8/50
Población de la generación 8: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 9/50
Población de la generación 9: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 10/50
Población de la generación 10: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 11/50
Población de la generación 11: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 12/50
Población de la generación 12: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 13/50
Población de la generación 13: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 14/50
Población de la generación 14: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 15/50
Población de la generación 15: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 16/50
Población de la generación 16: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 17/50
Población de la generación 17: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 18/50
Población de la generación 18: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 19/50
Población de la generación 19: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 20/50
Población de la generación 20: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 21/50
Población de la generación 21: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 22/50
Población de la generación 22: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 23/50
Población de la generación 23: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 24/50
Población de la generación 24: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 25/50
Población de la generación 25: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 26/50
Población de la generación 26: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 27/50
Población de la generación 27: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 28/50
Población de la generación 28: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 29/50
Población de la generación 29: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 30/50
Población de la generación 30: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 31/50
Población de la generación 31: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 32/50
Población de la generación 32: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 33/50
Población de la generación 33: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 34/50
Población de la generación 34: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 35/50
Población de la generación 35: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 36/50
Población de la generación 36: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 37/50
Población de la generación 37: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 38/50
Población de la generación 38: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 39/50
Población de la generación 39: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 40/50
Población de la generación 40: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 41/50
Población de la generación 41: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 42/50
Población de la generación 42: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 43/50
Población de la generación 43: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 44/50
Población de la generación 44: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 45/50
Población de la generación 45: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 46/50
Población de la generación 46: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 47/50
Población de la generación 47: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 48/50
Población de la generación 48: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 49/50
Población de la generación 49: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación 50/50
Población de la generación 50: [[22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8], [22, 18, 15, 14, 10, 8]]
Mejor ruta hasta ahora: [22, 18, 15, 14, 10, 8] con evaluación (350.0, 18.9, 13.6, 2.8)
Generación inicial: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 4, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8], [22, 25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8]]
Generación 1/50
Población de la generación 1: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 2/50
Población de la generación 2: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 3/50
Población de la generación 3: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 4/50
Población de la generación 4: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 5/50
Población de la generación 5: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 6/50
Población de la generación 6: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 7/50
Población de la generación 7: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 8/50
Población de la generación 8: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 9/50
Población de la generación 9: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 10/50
Población de la generación 10: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 11/50
Población de la generación 11: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 12/50
Población de la generación 12: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 13/50
Población de la generación 13: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 14/50
Población de la generación 14: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 15/50
Población de la generación 15: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 16/50
Población de la generación 16: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 17/50
Población de la generación 17: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 18/50
Población de la generación 18: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 19/50
Población de la generación 19: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 20/50
Población de la generación 20: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 21/50
Población de la generación 21: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 22/50
Población de la generación 22: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 23/50
Población de la generación 23: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 24/50
Población de la generación 24: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 25/50
Población de la generación 25: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 26/50
Población de la generación 26: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 27/50
Población de la generación 27: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 28/50
Población de la generación 28: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 29/50
Población de la generación 29: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 30/50
Población de la generación 30: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 31/50
Población de la generación 31: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 32/50
Población de la generación 32: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 33/50
Población de la generación 33: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 34/50
Población de la generación 34: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 35/50
Población de la generación 35: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 36/50
Población de la generación 36: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 37/50
Población de la generación 37: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 38/50
Población de la generación 38: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 39/50
Población de la generación 39: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 40/50
Población de la generación 40: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 41/50
Población de la generación 41: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 42/50
Población de la generación 42: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 43/50
Población de la generación 43: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 44/50
Población de la generación 44: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 45/50
Población de la generación 45: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 46/50
Población de la generación 46: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 47/50
Población de la generación 47: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 48/50
Población de la generación 48: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 49/50
Población de la generación 49: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)
Generación 50/50
Población de la generación 50: [[22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8], [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]]
Mejor ruta hasta ahora: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8] con evaluación (770.0, 41.1, 1, 5.6)

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 2.202008 segundos
Uso de CPU: 12.2 %
Uso de memoria: 8208.11 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)
Generación inicial: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 22, 18, 15, 14, 12, 13], [25, 23, 19, 13], [25, 22, 18, 15, 14, 12, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 22, 18, 15, 14, 12, 13], [25, 23, 19, 13]]
Generación 1/50
Población de la generación 1: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 2/50
Población de la generación 2: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 3/50
Población de la generación 3: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 4/50
Población de la generación 4: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 5/50
Población de la generación 5: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 6/50
Población de la generación 6: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 7/50
Población de la generación 7: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 8/50
Población de la generación 8: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 9/50
Población de la generación 9: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 10/50
Población de la generación 10: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 11/50
Población de la generación 11: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 12/50
Población de la generación 12: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 13/50
Población de la generación 13: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 14/50
Población de la generación 14: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 15/50
Población de la generación 15: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 16/50
Población de la generación 16: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 17/50
Población de la generación 17: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 18/50
Población de la generación 18: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 19/50
Población de la generación 19: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 20/50
Población de la generación 20: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 21/50
Población de la generación 21: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 22/50
Población de la generación 22: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 23/50
Población de la generación 23: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 24/50
Población de la generación 24: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 25/50
Población de la generación 25: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 26/50
Población de la generación 26: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 27/50
Población de la generación 27: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 28/50
Población de la generación 28: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 29/50
Población de la generación 29: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 30/50
Población de la generación 30: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 31/50
Población de la generación 31: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 32/50
Población de la generación 32: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 33/50
Población de la generación 33: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 34/50
Población de la generación 34: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 35/50
Población de la generación 35: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 36/50
Población de la generación 36: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 37/50
Población de la generación 37: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 38/50
Población de la generación 38: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 39/50
Población de la generación 39: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 40/50
Población de la generación 40: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 41/50
Población de la generación 41: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 42/50
Población de la generación 42: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 43/50
Población de la generación 43: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 44/50
Población de la generación 44: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 45/50
Población de la generación 45: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 46/50
Población de la generación 46: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 47/50
Población de la generación 47: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 48/50
Población de la generación 48: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 49/50
Población de la generación 49: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación 50/50
Población de la generación 50: [[25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13], [25, 23, 19, 13]]
Mejor ruta hasta ahora: [25, 23, 19, 13] con evaluación (300.0, 16.0, 3.8, 2.1)
Generación inicial: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Generación 1/50
Población de la generación 1: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 2/50
Población de la generación 2: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 3/50
Población de la generación 3: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 4/50
Población de la generación 4: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 5/50
Población de la generación 5: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 6/50
Población de la generación 6: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 7/50
Población de la generación 7: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 8/50
Población de la generación 8: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 9/50
Población de la generación 9: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 10/50
Población de la generación 10: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 11/50
Población de la generación 11: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 12/50
Población de la generación 12: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 13/50
Población de la generación 13: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 14/50
Población de la generación 14: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 15/50
Población de la generación 15: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 16/50
Población de la generación 16: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 17/50
Población de la generación 17: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 18/50
Población de la generación 18: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 19/50
Población de la generación 19: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 20/50
Población de la generación 20: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 21/50
Población de la generación 21: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 22/50
Población de la generación 22: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 23/50
Población de la generación 23: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 24/50
Población de la generación 24: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 25/50
Población de la generación 25: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 26/50
Población de la generación 26: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 27/50
Población de la generación 27: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 28/50
Población de la generación 28: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 29/50
Población de la generación 29: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 30/50
Población de la generación 30: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 31/50
Población de la generación 31: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 32/50
Población de la generación 32: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 33/50
Población de la generación 33: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 34/50
Población de la generación 34: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 35/50
Población de la generación 35: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 36/50
Población de la generación 36: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 37/50
Población de la generación 37: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 38/50
Población de la generación 38: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 39/50
Población de la generación 39: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 40/50
Población de la generación 40: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 41/50
Población de la generación 41: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 42/50
Población de la generación 42: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 43/50
Población de la generación 43: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 44/50
Población de la generación 44: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 45/50
Población de la generación 45: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 46/50
Población de la generación 46: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 47/50
Población de la generación 47: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 48/50
Población de la generación 48: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 49/50
Población de la generación 49: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)
Generación 50/50
Población de la generación 50: [[25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13], [25, 22, 18, 15, 14, 12, 13]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14, 12, 13] con evaluación (400.0, 21.4, 1, 3.2)

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 2.1610827 segundos
Uso de CPU: 13.4 %
Uso de memoria: 8214.05 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)
Generación inicial: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 23, 19, 13, 12, 14], [25, 22, 18, 15, 14], [25, 23, 26, 24, 21, 17, 13, 12, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Generación 1/50
Población de la generación 1: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 2/50
Población de la generación 2: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 3/50
Población de la generación 3: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 4/50
Población de la generación 4: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 5/50
Población de la generación 5: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 6/50
Población de la generación 6: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 7/50
Población de la generación 7: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 8/50
Población de la generación 8: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 9/50
Población de la generación 9: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 10/50
Población de la generación 10: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 11/50
Población de la generación 11: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 12/50
Población de la generación 12: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 13/50
Población de la generación 13: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 14/50
Población de la generación 14: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 15/50
Población de la generación 15: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 16/50
Población de la generación 16: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 17/50
Población de la generación 17: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 18/50
Población de la generación 18: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 19/50
Población de la generación 19: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 20/50
Población de la generación 20: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 21/50
Población de la generación 21: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 22/50
Población de la generación 22: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 23/50
Población de la generación 23: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 24/50
Población de la generación 24: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 25/50
Población de la generación 25: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 26/50
Población de la generación 26: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 27/50
Población de la generación 27: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 28/50
Población de la generación 28: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 29/50
Población de la generación 29: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 30/50
Población de la generación 30: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 31/50
Población de la generación 31: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 32/50
Población de la generación 32: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 33/50
Población de la generación 33: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 34/50
Población de la generación 34: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 35/50
Población de la generación 35: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 36/50
Población de la generación 36: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 37/50
Población de la generación 37: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 38/50
Población de la generación 38: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 39/50
Población de la generación 39: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 40/50
Población de la generación 40: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 41/50
Población de la generación 41: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 42/50
Población de la generación 42: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 43/50
Población de la generación 43: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 44/50
Población de la generación 44: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 45/50
Población de la generación 45: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 46/50
Población de la generación 46: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 47/50
Población de la generación 47: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 48/50
Población de la generación 48: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 49/50
Población de la generación 49: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación 50/50
Población de la generación 50: [[25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14], [25, 22, 18, 15, 14]]
Mejor ruta hasta ahora: [25, 22, 18, 15, 14] con evaluación (200.0, 10.8, 13.8, 1.8)
Generación inicial: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 11, 9, 10, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Generación 1/50
Población de la generación 1: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 2/50
Población de la generación 2: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 3/50
Población de la generación 3: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 4/50
Población de la generación 4: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 5/50
Población de la generación 5: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 6/50
Población de la generación 6: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 7/50
Población de la generación 7: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 8/50
Población de la generación 8: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 9/50
Población de la generación 9: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 10/50
Población de la generación 10: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 11/50
Población de la generación 11: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 12/50
Población de la generación 12: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 13/50
Población de la generación 13: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 14/50
Población de la generación 14: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 15/50
Población de la generación 15: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 16/50
Población de la generación 16: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 17/50
Población de la generación 17: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 18/50
Población de la generación 18: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 19/50
Población de la generación 19: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 20/50
Población de la generación 20: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 21/50
Población de la generación 21: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 22/50
Población de la generación 22: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 23/50
Población de la generación 23: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 24/50
Población de la generación 24: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 25/50
Población de la generación 25: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 26/50
Población de la generación 26: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 27/50
Población de la generación 27: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 28/50
Población de la generación 28: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 29/50
Población de la generación 29: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 30/50
Población de la generación 30: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 31/50
Población de la generación 31: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 32/50
Población de la generación 32: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 33/50
Población de la generación 33: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 34/50
Población de la generación 34: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 35/50
Población de la generación 35: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 36/50
Población de la generación 36: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 37/50
Población de la generación 37: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 38/50
Población de la generación 38: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 39/50
Población de la generación 39: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 40/50
Población de la generación 40: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 41/50
Población de la generación 41: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 42/50
Población de la generación 42: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 43/50
Población de la generación 43: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 44/50
Población de la generación 44: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 45/50
Población de la generación 45: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 46/50
Población de la generación 46: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 47/50
Población de la generación 47: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 48/50
Población de la generación 48: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 49/50
Población de la generación 49: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)
Generación 50/50
Población de la generación 50: [[25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14], [25, 23, 19, 13, 12, 14]]
Mejor ruta hasta ahora: [25, 23, 19, 13, 12, 14] con evaluación (500.0, 26.6, 1, 3.5)

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 19, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 500.0, atenuación = 26.6, OSNR = 1, retardo = 3.5
Tiempo de cálculo: 2.1596801 segundos
Uso de CPU: 10.7 %
Uso de memoria: 8229.05 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)
Generación inicial: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Generación 1/50
Población de la generación 1: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 2/50
Población de la generación 2: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 3/50
Población de la generación 3: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 4/50
Población de la generación 4: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 5/50
Población de la generación 5: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 6/50
Población de la generación 6: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 7/50
Población de la generación 7: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 8/50
Población de la generación 8: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 9/50
Población de la generación 9: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 10/50
Población de la generación 10: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 11/50
Población de la generación 11: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 12/50
Población de la generación 12: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 13/50
Población de la generación 13: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 14/50
Población de la generación 14: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 15/50
Población de la generación 15: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 16/50
Población de la generación 16: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 17/50
Población de la generación 17: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 18/50
Población de la generación 18: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 19/50
Población de la generación 19: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 20/50
Población de la generación 20: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 21/50
Población de la generación 21: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 22/50
Población de la generación 22: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 23/50
Población de la generación 23: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 24/50
Población de la generación 24: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 25/50
Población de la generación 25: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 26/50
Población de la generación 26: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 27/50
Población de la generación 27: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 28/50
Población de la generación 28: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 29/50
Población de la generación 29: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 30/50
Población de la generación 30: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 31/50
Población de la generación 31: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 32/50
Población de la generación 32: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 33/50
Población de la generación 33: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 34/50
Población de la generación 34: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 35/50
Población de la generación 35: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 36/50
Población de la generación 36: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 37/50
Población de la generación 37: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 38/50
Población de la generación 38: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 39/50
Población de la generación 39: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 40/50
Población de la generación 40: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 41/50
Población de la generación 41: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 42/50
Población de la generación 42: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 43/50
Población de la generación 43: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 44/50
Población de la generación 44: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 45/50
Población de la generación 45: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 46/50
Población de la generación 46: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 47/50
Población de la generación 47: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 48/50
Población de la generación 48: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 49/50
Población de la generación 49: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 50/50
Población de la generación 50: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación inicial: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 23, 19, 13, 12, 14, 15, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 23, 19, 13, 12, 14, 15, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Generación 1/50
Población de la generación 1: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 2/50
Población de la generación 2: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 3/50
Población de la generación 3: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 4/50
Población de la generación 4: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 5/50
Población de la generación 5: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 6/50
Población de la generación 6: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 7/50
Población de la generación 7: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 8/50
Población de la generación 8: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 9/50
Población de la generación 9: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 10/50
Población de la generación 10: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 11/50
Población de la generación 11: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 12/50
Población de la generación 12: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 13/50
Población de la generación 13: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 14/50
Población de la generación 14: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 15/50
Población de la generación 15: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 16/50
Población de la generación 16: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 17/50
Población de la generación 17: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 18/50
Población de la generación 18: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 19/50
Población de la generación 19: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 20/50
Población de la generación 20: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 21/50
Población de la generación 21: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 22/50
Población de la generación 22: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 23/50
Población de la generación 23: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 24/50
Población de la generación 24: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 25/50
Población de la generación 25: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 26/50
Población de la generación 26: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 27/50
Población de la generación 27: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 28/50
Población de la generación 28: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 29/50
Población de la generación 29: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 30/50
Población de la generación 30: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 31/50
Población de la generación 31: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 32/50
Población de la generación 32: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 33/50
Población de la generación 33: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 34/50
Población de la generación 34: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 35/50
Población de la generación 35: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 36/50
Población de la generación 36: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 37/50
Población de la generación 37: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 38/50
Población de la generación 38: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 39/50
Población de la generación 39: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 40/50
Población de la generación 40: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 41/50
Población de la generación 41: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 42/50
Población de la generación 42: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 43/50
Población de la generación 43: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 44/50
Población de la generación 44: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 45/50
Población de la generación 45: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 46/50
Población de la generación 46: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 47/50
Población de la generación 47: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 48/50
Población de la generación 48: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 49/50
Población de la generación 49: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 50/50
Población de la generación 50: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.1647971 segundos
Uso de CPU: 8.7 %
Uso de memoria: 8181.8 MB


Calculando rutas (10/10)
Generación inicial: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Generación 1/50
Población de la generación 1: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 2/50
Población de la generación 2: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 3/50
Población de la generación 3: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 4/50
Población de la generación 4: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 5/50
Población de la generación 5: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 6/50
Población de la generación 6: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 7/50
Población de la generación 7: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 8/50
Población de la generación 8: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 9/50
Población de la generación 9: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 10/50
Población de la generación 10: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 11/50
Población de la generación 11: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 12/50
Población de la generación 12: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 13/50
Población de la generación 13: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 14/50
Población de la generación 14: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 15/50
Población de la generación 15: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 16/50
Población de la generación 16: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 17/50
Población de la generación 17: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 18/50
Población de la generación 18: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 19/50
Población de la generación 19: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 20/50
Población de la generación 20: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 21/50
Población de la generación 21: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 22/50
Población de la generación 22: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 23/50
Población de la generación 23: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 24/50
Población de la generación 24: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 25/50
Población de la generación 25: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 26/50
Población de la generación 26: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 27/50
Población de la generación 27: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 28/50
Población de la generación 28: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 29/50
Población de la generación 29: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 30/50
Población de la generación 30: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 31/50
Población de la generación 31: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 32/50
Población de la generación 32: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 33/50
Población de la generación 33: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 34/50
Población de la generación 34: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 35/50
Población de la generación 35: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 36/50
Población de la generación 36: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 37/50
Población de la generación 37: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 38/50
Población de la generación 38: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 39/50
Población de la generación 39: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 40/50
Población de la generación 40: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 41/50
Población de la generación 41: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 42/50
Población de la generación 42: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 43/50
Población de la generación 43: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 44/50
Población de la generación 44: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 45/50
Población de la generación 45: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 46/50
Población de la generación 46: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 47/50
Población de la generación 47: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 48/50
Población de la generación 48: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 49/50
Población de la generación 49: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación 50/50
Población de la generación 50: [[25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18], [25, 22, 18]]
Mejor ruta hasta ahora: [25, 22, 18] con evaluación (100.0, 5.4, 13.8, 0.9)
Generación inicial: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Generación 1/50
Población de la generación 1: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 2/50
Población de la generación 2: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 3/50
Población de la generación 3: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 4/50
Población de la generación 4: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 5/50
Población de la generación 5: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 6/50
Población de la generación 6: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 7/50
Población de la generación 7: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 8/50
Población de la generación 8: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 9/50
Población de la generación 9: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 10/50
Población de la generación 10: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 11/50
Población de la generación 11: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 12/50
Población de la generación 12: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 13/50
Población de la generación 13: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 14/50
Población de la generación 14: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 15/50
Población de la generación 15: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 16/50
Población de la generación 16: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 17/50
Población de la generación 17: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 18/50
Población de la generación 18: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 19/50
Población de la generación 19: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 20/50
Población de la generación 20: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 21/50
Población de la generación 21: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 22/50
Población de la generación 22: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 23/50
Población de la generación 23: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 24/50
Población de la generación 24: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 25/50
Población de la generación 25: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 26/50
Población de la generación 26: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 27/50
Población de la generación 27: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 28/50
Población de la generación 28: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 29/50
Población de la generación 29: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 30/50
Población de la generación 30: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 31/50
Población de la generación 31: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 32/50
Población de la generación 32: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 33/50
Población de la generación 33: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 34/50
Población de la generación 34: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 35/50
Población de la generación 35: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 36/50
Población de la generación 36: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 37/50
Población de la generación 37: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 38/50
Población de la generación 38: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 39/50
Población de la generación 39: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 40/50
Población de la generación 40: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 41/50
Población de la generación 41: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 42/50
Población de la generación 42: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 43/50
Población de la generación 43: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 44/50
Población de la generación 44: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 45/50
Población de la generación 45: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 46/50
Población de la generación 46: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 47/50
Población de la generación 47: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 48/50
Población de la generación 48: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 49/50
Población de la generación 49: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)
Generación 50/50
Población de la generación 50: [[25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18], [25, 27, 28, 29, 30, 20, 16, 18]]
Mejor ruta hasta ahora: [25, 27, 28, 29, 30, 20, 16, 18] con evaluación (500.0, 26.8, 3.8, 3.9)

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.1663973 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8232.09 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_ga_opt_100P.csv' generado correctamente

Tiempo total de cálculo: 21.51 segundos
Uso total de CPU: 104.1 %
Uso total de memoria: 82190.09 MB
Tiempo promedio por demanda: 2.15 segundos
Uso promedio de CPU por demanda: 10.41 %
Uso promedio de memoria por demanda: 8219.01 MB

Encaminamiento calcula_ruta_ga_opt de las demandas de la matriz 100P completado con éxito
In [307]:
# Representar las rutas disjuntas GA Optimizado 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_ga_opt_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P GA Optimizado' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 14, 12, 13, 11, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 19, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [308]:
# Visualizar las rutas disjuntas de GA Optimizado 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'GA Optimizado'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [310]:
# Calcular la ocupacion (número de canales DWDM) por enlace - GA Optimizado  1+1

nombre_algoritmo = 'ga_opt'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10      14                      0                        1   
5       14      12                      1                        2   
6       12      13                      2                        2   
7       13      11                      1                        2   
8       11       9                      1                        2   
9        9       7                      1                        1   
10      12      14                      0                        2   
11      14      10                      1                        2   
12      10       8                      1                        1   
13       8       6                      0                        1   
14       6       7                      0                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        2   
23      19      13                      1                        2   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      13      12                      0                        1   
28      25      27                      0                        2   
29      27      28                      0                        2   
30      28      29                      0                        2   
31      29      30                      0                        2   
32      30      20                      0                        2   
33      20      16                      0                        2   
34      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               1               96  1.041667  
5               3               96  3.125000  
6               4               96  4.166667  
7               3               96  3.125000  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              1               96  1.041667  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              3               96  3.125000  
23              3               96  3.125000  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              2               96  2.083333  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              2               96  2.083333  
33              2               96  2.083333  
34              2               96  2.083333  

Algoritmo ACO Bidireccional 1+1

In [311]:
# Test de validación para una matriz protegida (P)
# Algoritmo ACO Bidireccional 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_aco_bid')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.0504241 segundos
Uso de CPU: 80.2 %
Uso de memoria: 8186.27 MB


Calculando rutas (2/10)
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.042968 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8212.67 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 14, 12, 13, 11, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.0
Tiempo de cálculo: 2.0636301 segundos
Uso de CPU: 5.1 %
Uso de memoria: 8158.64 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 2.0836132 segundos
Uso de CPU: 4.8 %
Uso de memoria: 8126.0 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 2.1103773 segundos
Uso de CPU: 13.1 %
Uso de memoria: 8215.23 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 2.1186891 segundos
Uso de CPU: 9.9 %
Uso de memoria: 8211.69 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 2.1045282 segundos
Uso de CPU: 12.2 %
Uso de memoria: 8219.27 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 19, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 500.0, atenuación = 26.6, OSNR = 1, retardo = 3.5
Tiempo de cálculo: 2.0845339 segundos
Uso de CPU: 12.3 %
Uso de memoria: 8207.27 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)
Hormiga 0 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.082794 segundos
Uso de CPU: 11.8 %
Uso de memoria: 8205.31 MB


Calculando rutas (10/10)
Hormiga 1 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 1 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 0 no encontró una ruta válida.
Hormiga 2 no encontró una ruta válida.
Hormiga 3 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.
Hormiga 4 no encontró una ruta válida.

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.0868781 segundos
Uso de CPU: 1.3 %
Uso de memoria: 8213.39 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_aco_bid_100P.csv' generado correctamente

Tiempo total de cálculo: 20.83 segundos
Uso total de CPU: 150.7 %
Uso total de memoria: 81955.73 MB
Tiempo promedio por demanda: 2.08 segundos
Uso promedio de CPU por demanda: 15.070000000000002 %
Uso promedio de memoria por demanda: 8195.57 MB

Encaminamiento calcula_ruta_aco_bid de las demandas de la matriz 100P completado con éxito
In [313]:
# Representar las rutas disjuntas ACO Bidireccional 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_aco_bid_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P ACO Bidireccional' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 14, 12, 13, 11, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 19, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [314]:
# Visualizar las rutas disjuntas de ACO Bidireccional 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'ACO Bidireccional'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [315]:
# Calcular la ocupacion (número de canales DWDM) por enlace
# df_resultados = pd.read_csv('ruta_al_archivo_csv')  # Cargar un DataFrame de ejemplo
nombre_algoritmo = 'aco_bid'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10      14                      0                        1   
5       14      12                      1                        2   
6       12      13                      2                        2   
7       13      11                      1                        2   
8       11       9                      1                        2   
9        9       7                      1                        1   
10      12      14                      0                        2   
11      14      10                      1                        2   
12      10       8                      1                        1   
13       8       6                      0                        1   
14       6       7                      0                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        2   
23      19      13                      1                        2   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      13      12                      0                        1   
28      25      27                      0                        2   
29      27      28                      0                        2   
30      28      29                      0                        2   
31      29      30                      0                        2   
32      30      20                      0                        2   
33      20      16                      0                        2   
34      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               1               96  1.041667  
5               3               96  3.125000  
6               4               96  4.166667  
7               3               96  3.125000  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              1               96  1.041667  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              3               96  3.125000  
23              3               96  3.125000  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              2               96  2.083333  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              2               96  2.083333  
33              2               96  2.083333  
34              2               96  2.083333  

Algoritmo BCO Básico 1+1

In [316]:
# Test de validación para una matriz protegida (P)
# Algoritmo BCO Básico 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_bco_basico')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)
No se generaron rutas válidas en la iteración 15
No se generaron rutas válidas en la iteración 17

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.0246499 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8166.73 MB


Calculando rutas (2/10)
No se generaron rutas válidas en la iteración 7
No se generaron rutas válidas en la iteración 29
No se generaron rutas válidas en la iteración 32
No se generaron rutas válidas en la iteración 43

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.0320249 segundos
Uso de CPU: 12.9 %
Uso de memoria: 8176.8 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 6
No se generaron rutas válidas en la iteración 12
No se generaron rutas válidas en la iteración 13
No se generaron rutas válidas en la iteración 15
No se generaron rutas válidas en la iteración 19
No se generaron rutas válidas en la iteración 20
No se generaron rutas válidas en la iteración 23
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 29
No se generaron rutas válidas en la iteración 36
No se generaron rutas válidas en la iteración 38

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 14, 12, 13, 11, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.0
Tiempo de cálculo: 2.032522 segundos
Uso de CPU: 9.3 %
Uso de memoria: 8171.05 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)
No se generaron rutas válidas en la iteración 23
No se generaron rutas válidas en la iteración 24
No se generaron rutas válidas en la iteración 45
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 9
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 22
No se generaron rutas válidas en la iteración 24
No se generaron rutas válidas en la iteración 32

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 2.028605 segundos
Uso de CPU: 16.1 %
Uso de memoria: 8162.97 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)
No se generaron rutas válidas en la iteración 1
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 4
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 34
No se generaron rutas válidas en la iteración 35
No se generaron rutas válidas en la iteración 46

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 2.0372553 segundos
Uso de CPU: 6.1 %
Uso de memoria: 8160.73 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 18
No se generaron rutas válidas en la iteración 37
No se generaron rutas válidas en la iteración 6
No se generaron rutas válidas en la iteración 8
No se generaron rutas válidas en la iteración 13
No se generaron rutas válidas en la iteración 14
No se generaron rutas válidas en la iteración 15
No se generaron rutas válidas en la iteración 17
No se generaron rutas válidas en la iteración 21
No se generaron rutas válidas en la iteración 23
No se generaron rutas válidas en la iteración 24
No se generaron rutas válidas en la iteración 25
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 28
No se generaron rutas válidas en la iteración 29
No se generaron rutas válidas en la iteración 34
No se generaron rutas válidas en la iteración 39
No se generaron rutas válidas en la iteración 42
No se generaron rutas válidas en la iteración 44
No se generaron rutas válidas en la iteración 45
No se generaron rutas válidas en la iteración 46
No se generaron rutas válidas en la iteración 48

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 2.036864 segundos
Uso de CPU: 7.1 %
Uso de memoria: 8135.16 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)
No se generaron rutas válidas en la iteración 5
No se generaron rutas válidas en la iteración 13
No se generaron rutas válidas en la iteración 1
No se generaron rutas válidas en la iteración 11
No se generaron rutas válidas en la iteración 16
No se generaron rutas válidas en la iteración 29
No se generaron rutas válidas en la iteración 40

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 2.0394633 segundos
Uso de CPU: 6.2 %
Uso de memoria: 8150.41 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)
No se generaron rutas válidas en la iteración 24
No se generaron rutas válidas en la iteración 25
No se generaron rutas válidas en la iteración 42
No se generaron rutas válidas en la iteración 2
No se generaron rutas válidas en la iteración 4
No se generaron rutas válidas en la iteración 8
No se generaron rutas válidas en la iteración 9
No se generaron rutas válidas en la iteración 10
No se generaron rutas válidas en la iteración 11
No se generaron rutas válidas en la iteración 17
No se generaron rutas válidas en la iteración 19
No se generaron rutas válidas en la iteración 21
No se generaron rutas válidas en la iteración 24
No se generaron rutas válidas en la iteración 27
No se generaron rutas válidas en la iteración 32
No se generaron rutas válidas en la iteración 33
No se generaron rutas válidas en la iteración 34
No se generaron rutas válidas en la iteración 36
No se generaron rutas válidas en la iteración 37
No se generaron rutas válidas en la iteración 38
No se generaron rutas válidas en la iteración 40
No se generaron rutas válidas en la iteración 43

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 19, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 500.0, atenuación = 26.6, OSNR = 1, retardo = 3.5
Tiempo de cálculo: 2.0296781 segundos
Uso de CPU: 4.8 %
Uso de memoria: 8084.47 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)
No se generaron rutas válidas en la iteración 41

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.0390558 segundos
Uso de CPU: 7.1 %
Uso de memoria: 8080.38 MB


Calculando rutas (10/10)
No se generaron rutas válidas en la iteración 36
No se generaron rutas válidas en la iteración 18

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.0444341 segundos
Uso de CPU: 5.9 %
Uso de memoria: 8101.38 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_bco_basico_100P.csv' generado correctamente

Tiempo total de cálculo: 20.34 segundos
Uso total de CPU: 75.5 %
Uso total de memoria: 81390.06 MB
Tiempo promedio por demanda: 2.03 segundos
Uso promedio de CPU por demanda: 7.550000000000002 %
Uso promedio de memoria por demanda: 8139.01 MB

Encaminamiento calcula_ruta_bco_basico de las demandas de la matriz 100P completado con éxito
In [317]:
# Representar las rutas disjuntas BCO Básico 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_bco_basico_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P BCO Básico' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 14, 12, 13, 11, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 19, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [319]:
# Visualizar las rutas disjuntas de BCO Básico 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'BCO Básico'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [320]:
# Calcular la ocupacion (número de canales DWDM) por enlace - BCO Básico
nombre_algoritmo = 'bco_basico'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10      14                      0                        1   
5       14      12                      1                        2   
6       12      13                      2                        2   
7       13      11                      1                        2   
8       11       9                      1                        2   
9        9       7                      1                        1   
10      12      14                      0                        2   
11      14      10                      1                        2   
12      10       8                      1                        1   
13       8       6                      0                        1   
14       6       7                      0                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        2   
23      19      13                      1                        2   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      13      12                      0                        1   
28      25      27                      0                        2   
29      27      28                      0                        2   
30      28      29                      0                        2   
31      29      30                      0                        2   
32      30      20                      0                        2   
33      20      16                      0                        2   
34      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               1               96  1.041667  
5               3               96  3.125000  
6               4               96  4.166667  
7               3               96  3.125000  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              1               96  1.041667  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              3               96  3.125000  
23              3               96  3.125000  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              2               96  2.083333  
29              2               96  2.083333  
30              2               96  2.083333  
31              2               96  2.083333  
32              2               96  2.083333  
33              2               96  2.083333  
34              2               96  2.083333  

Algoritmo PSO Optimizado 1+1

In [321]:
# Test de validación para una matriz protegida (P)
# Algoritmo PSO Optimizado 1+1
# Rutas disjuntas (P)

tipo_trafico, nodos, demandas = leer_matriz_trafico(matriz)
print(f"Nodos procesados: {nodos}")
print(f"\nDemandas procesadas:\n{demandas}")
calcular_rutas_disjuntas(grafo, tipo_trafico, nodos, demandas, 'calcula_ruta_pso_opt')
Nodos procesados: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Demandas procesadas:
[[ 0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan  2. nan nan nan nan  0. nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan  1. nan nan nan nan  0. nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  0. nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0. nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan  0.
  nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
   0. nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan  0. nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan  0. nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan  1. nan nan nan nan nan nan nan nan nan nan
  nan nan nan  0. nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan  0. nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan  0. nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan  1.  1. nan nan nan  2.
  nan nan nan nan nan nan  0. nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan  0. nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan  0. nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan  0. nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan  0. nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan  0. nan]]

Total de demandas en la matriz 100P: 10

Demanda de 8 a 3: 2 longitudes de onda

Calculando rutas (1/10)
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 12]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 10, 14, 12, 13, 11]
Estancamiento en nodo 10, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 12, 14, 10]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 19, 23, 25, 22, 18, 15, 14, 12]
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 12, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 15]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 12]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 17, 21, 24, 26, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 12]
Estancamiento en nodo 10, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 12, 14, 10]

Ruta primaria (1/10) de 8 a 3: [8, 3]
Ruta secundaria (1/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.011529 segundos
Uso de CPU: 3.7 %
Uso de memoria: 8220.81 MB


Calculando rutas (2/10)
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 12, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 12, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 6, 7, 9, 10, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17, 13, 11]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 8 hasta 3. Ruta actual: [8, 10, 9, 11, 13, 12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19]

Ruta primaria (2/10) de 8 a 3: [8, 3]
Ruta secundaria (2/10) de 8 a 3: [8, 4, 3]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 3.8, retardo = 1.2
Métricas secundaria: distancia = 400.0, atenuación = 21.2, OSNR = 3.8, retardo = 2.4
Tiempo de cálculo: 2.0186892 segundos
Uso de CPU: 6.2 %
Uso de memoria: 8206.11 MB

Demanda de 10 a 9: 1 longitudes de onda

Calculando rutas (3/10)
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 19, 23, 25, 27, 28, 29, 30, 20, 16, 18, 15]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 3, 4]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17, 13, 12]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 10 hasta 9. Ruta actual: [10, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]

Ruta primaria (3/10) de 10 a 9: [10, 9]
Ruta secundaria (3/10) de 10 a 9: [10, 14, 12, 13, 11, 9]
Métricas primaria: distancia = 150.0, atenuación = 7.9, OSNR = 1, retardo = 1.0
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.0
Tiempo de cálculo: 2.0158849 segundos
Uso de CPU: 10.7 %
Uso de memoria: 8152.55 MB

Demanda de 12 a 7: 1 longitudes de onda

Calculando rutas (4/10)
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 19]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 17, 21, 24, 26, 23, 25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 11, 9, 10, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 10, 8, 3, 4]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 22, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 10, 8, 3, 4]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 12 hasta 7. Ruta actual: [12, 14, 10, 8, 3, 4]

Ruta primaria (4/10) de 12 a 7: [12, 13, 11, 9, 7]
Ruta secundaria (4/10) de 12 a 7: [12, 14, 10, 8, 6, 7]
Métricas primaria: distancia = 250.0, atenuación = 13.5, OSNR = 13.6, retardo = 2.1
Métricas secundaria: distancia = 570.0, atenuación = 30.3, OSNR = 1, retardo = 3.8
Tiempo de cálculo: 2.019434 segundos
Uso de CPU: 9.3 %
Uso de memoria: 8094.45 MB

Demanda de 14 a 13: 1 longitudes de onda

Calculando rutas (5/10)
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 8, 3, 4]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 9, 7, 5, 2, 1, 3, 8, 6]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 9, 7, 5, 2, 1, 3, 4, 8, 6]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 14 hasta 13. Ruta actual: [14, 15, 18, 16, 20, 30, 29, 28, 27, 25, 22]

Ruta primaria (5/10) de 14 a 13: [14, 12, 13]
Ruta secundaria (5/10) de 14 a 13: [14, 10, 9, 11, 13]
Métricas primaria: distancia = 200.0, atenuación = 10.6, OSNR = 1, retardo = 1.4
Métricas secundaria: distancia = 350.0, atenuación = 18.7, OSNR = 1, retardo = 2.6
Tiempo de cálculo: 2.021786 segundos
Uso de CPU: 3.5 %
Uso de memoria: 8128.42 MB

Demanda de 22 a 8: 1 longitudes de onda

Calculando rutas (6/10)
Estancamiento en nodo 15, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 19, 13, 12, 14, 15]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 18, 16, 20, 30, 29, 28, 27, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 9, 11, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 17, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 9, 11, 13, 19, 23, 26, 24, 21, 17]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 19, 13, 12]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 19, 13, 12]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 12]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 12]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 12]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 22 hasta 8. Ruta actual: [22, 25, 27, 28, 29, 30, 20, 16]

Ruta primaria (6/10) de 22 a 8: [22, 18, 15, 14, 10, 8]
Ruta secundaria (6/10) de 22 a 8: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Métricas primaria: distancia = 350.0, atenuación = 18.9, OSNR = 13.6, retardo = 2.8
Métricas secundaria: distancia = 770.0, atenuación = 41.1, OSNR = 1, retardo = 5.6
Tiempo de cálculo: 2.021889 segundos
Uso de CPU: 4.9 %
Uso de memoria: 8118.64 MB

Demanda de 25 a 13: 1 longitudes de onda

Calculando rutas (7/10)
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 15, 14, 10, 9, 7, 6, 8, 4, 3, 1, 2, 5]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 9, 7, 5, 2, 1, 3, 4, 8, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 15, 14, 10, 9, 7, 5, 2, 1, 3, 4, 8, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 15, 14, 10, 8, 3, 4]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 15, 14, 10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 9, 7, 5, 2, 1, 3, 4, 8, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 15, 14, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 13. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]

Ruta primaria (7/10) de 25 a 13: [25, 23, 19, 13]
Ruta secundaria (7/10) de 25 a 13: [25, 22, 18, 15, 14, 12, 13]
Métricas primaria: distancia = 300.0, atenuación = 16.0, OSNR = 3.8, retardo = 2.1
Métricas secundaria: distancia = 400.0, atenuación = 21.4, OSNR = 1, retardo = 3.2
Tiempo de cálculo: 2.0181842 segundos
Uso de CPU: 0.0 %
Uso de memoria: 8089.42 MB

Demanda de 25 a 14: 1 longitudes de onda

Calculando rutas (8/10)
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 10, 8, 4, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 22, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16, 18, 22]
Estancamiento en nodo 27, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 22, 18, 16, 20, 30, 29, 28, 27]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 4, 8, 6]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8, 3, 1, 2, 5]
Estancamiento en nodo 16, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 14. Ruta actual: [25, 27, 28, 29, 30, 20, 16]

Ruta primaria (8/10) de 25 a 14: [25, 22, 18, 15, 14]
Ruta secundaria (8/10) de 25 a 14: [25, 23, 26, 24, 21, 17, 13, 12, 14]
Métricas primaria: distancia = 200.0, atenuación = 10.8, OSNR = 13.8, retardo = 1.8
Métricas secundaria: distancia = 600.0, atenuación = 32.0, OSNR = 1, retardo = 4.6
Tiempo de cálculo: 2.0241959 segundos
Uso de CPU: 4.8 %
Uso de memoria: 8119.8 MB

Demanda de 25 a 18: 2 longitudes de onda

Calculando rutas (9/10)
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 12, 14, 10, 8, 6, 7, 9, 11]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 10, 8, 6, 7, 5, 2, 1, 3, 4]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 11, 9, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 12, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 11, 9, 10, 14, 12]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 5, 2, 1, 3, 8, 6]

Ruta primaria (9/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (9/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.020844 segundos
Uso de CPU: 7.1 %
Uso de memoria: 8110.27 MB


Calculando rutas (10/10)
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 5, 2, 1, 3, 4, 8, 6]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 11, 9, 7, 6, 8, 3, 1, 2, 5]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 12, 14, 10, 8, 3, 1, 2, 5, 7, 6]
Estancamiento en nodo 11, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 12, 14, 10, 9, 11]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 11, 9, 7, 5, 2, 1, 3, 8, 4]
Estancamiento en nodo 5, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 6, 8, 4, 3, 1, 2, 5]
Estancamiento en nodo 19, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 19]
Estancamiento en nodo 6, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 26, 24, 21, 17, 13, 11, 9, 7, 5, 2, 1, 3, 8, 6]
Estancamiento en nodo 26, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 17, 21, 24, 26]
Estancamiento en nodo 4, sin vecinos válidos.
No se pudo completar la ruta desde 25 hasta 18. Ruta actual: [25, 23, 19, 13, 11, 9, 10, 8, 6, 7, 5, 2, 1, 3, 4]

Ruta primaria (10/10) de 25 a 18: [25, 22, 18]
Ruta secundaria (10/10) de 25 a 18: [25, 27, 28, 29, 30, 20, 16, 18]
Métricas primaria: distancia = 100.0, atenuación = 5.4, OSNR = 13.8, retardo = 0.9
Métricas secundaria: distancia = 500.0, atenuación = 26.8, OSNR = 3.8, retardo = 3.9
Tiempo de cálculo: 2.0238888 segundos
Uso de CPU: 1.2 %
Uso de memoria: 8122.11 MB



Fichero 'RefNet3_rutas_disjuntas_calcula_ruta_pso_opt_100P.csv' generado correctamente

Tiempo total de cálculo: 20.2 segundos
Uso total de CPU: 51.4 %
Uso total de memoria: 81362.58 MB
Tiempo promedio por demanda: 2.02 segundos
Uso promedio de CPU por demanda: 5.140000000000001 %
Uso promedio de memoria por demanda: 8136.26 MB

Encaminamiento calcula_ruta_pso_opt de las demandas de la matriz 100P completado con éxito
In [322]:
# Representar las rutas disjuntas PSO Optimizado 1+1
archivo_csv = 'RefNet3_rutas_disjuntas_calcula_ruta_pso_opt_100P.csv'  # Cambiar el nombre del archivo según el algoritmo usado !!!
titulo = 'Rutas en la Red DWDM RefNet3 100G P PSO Optimizado' # Cambiar el nombre del archivo según el algoritmo usado !!!
representar_rutas_disjuntas(grafo, archivo_csv, titulo)
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 8 a 3
Ruta primaria: [8, 3]
Ruta secundaria: [8, 4, 3]
Visualizando ruta de 10 a 9
Ruta primaria: [10, 9]
Ruta secundaria: [10, 14, 12, 13, 11, 9]
Visualizando ruta de 12 a 7
Ruta primaria: [12, 13, 11, 9, 7]
Ruta secundaria: [12, 14, 10, 8, 6, 7]
Visualizando ruta de 14 a 13
Ruta primaria: [14, 12, 13]
Ruta secundaria: [14, 10, 9, 11, 13]
Visualizando ruta de 22 a 8
Ruta primaria: [22, 18, 15, 14, 10, 8]
Ruta secundaria: [22, 25, 23, 19, 13, 11, 9, 7, 6, 8]
Visualizando ruta de 25 a 13
Ruta primaria: [25, 23, 19, 13]
Ruta secundaria: [25, 22, 18, 15, 14, 12, 13]
Visualizando ruta de 25 a 14
Ruta primaria: [25, 22, 18, 15, 14]
Ruta secundaria: [25, 23, 26, 24, 21, 17, 13, 12, 14]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
Visualizando ruta de 25 a 18
Ruta primaria: [25, 22, 18]
Ruta secundaria: [25, 27, 28, 29, 30, 20, 16, 18]
/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:24: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

/var/folders/pp/jv52xn8s4t71ssb1833wz0m00000gn/T/ipykernel_68562/337449241.py:25: MatplotlibDeprecationWarning:

The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.

In [323]:
# Visualizar las rutas disjuntas de PSO Optimizado 1+1 de forma interactiva
df_resultados = pd.read_csv(archivo_csv)
df_resultados['ruta_primaria'] = df_resultados['ruta_primaria'].apply(convertir_ruta)
df_resultados['ruta_secundaria'] = df_resultados['ruta_secundaria'].apply(convertir_ruta)

algoritmo = 'pso_opt'
# Representar gráficamente las rutas disjuntas de manera interactiva
grafica_rutas_disjuntas_interactivas(grafo, df_resultados, algoritmo)
In [324]:
# Calcular la ocupacion (número de canales DWDM) por enlace - PSO Optimizado
nombre_algoritmo = 'pso_opt'
calcular_ch_dwdm(df_resultados, num_ch_dwdm, nombre_algoritmo)
    ROADM1  ROADM2  Num Canales Primarios  Num Canales Secundarios  \
0        8       3                      2                        0   
1        8       4                      0                        2   
2        4       3                      0                        2   
3       10       9                      1                        1   
4       10      14                      0                        1   
5       14      12                      1                        2   
6       12      13                      2                        2   
7       13      11                      1                        2   
8       11       9                      1                        2   
9        9       7                      1                        1   
10      12      14                      0                        2   
11      14      10                      1                        2   
12      10       8                      1                        1   
13       8       6                      0                        1   
14       6       7                      0                        1   
15       9      11                      0                        1   
16      11      13                      0                        1   
17      22      18                      4                        1   
18      18      15                      2                        1   
19      15      14                      2                        1   
20      22      25                      0                        1   
21      25      23                      1                        2   
22      23      19                      1                        1   
23      19      13                      1                        1   
24       7       6                      0                        1   
25       6       8                      0                        1   
26      25      22                      3                        1   
27      23      26                      0                        1   
28      26      24                      0                        1   
29      24      21                      0                        1   
30      21      17                      0                        1   
31      17      13                      0                        1   
32      13      12                      0                        1   
33      25      27                      0                        2   
34      27      28                      0                        2   
35      28      29                      0                        2   
36      29      30                      0                        2   
37      30      20                      0                        2   
38      20      16                      0                        2   
39      16      18                      0                        2   

    Total Canales  Num Max CH DWDM         %  
0               2               96  2.083333  
1               2               96  2.083333  
2               2               96  2.083333  
3               2               96  2.083333  
4               1               96  1.041667  
5               3               96  3.125000  
6               4               96  4.166667  
7               3               96  3.125000  
8               3               96  3.125000  
9               2               96  2.083333  
10              2               96  2.083333  
11              3               96  3.125000  
12              2               96  2.083333  
13              1               96  1.041667  
14              1               96  1.041667  
15              1               96  1.041667  
16              1               96  1.041667  
17              5               96  5.208333  
18              3               96  3.125000  
19              3               96  3.125000  
20              1               96  1.041667  
21              3               96  3.125000  
22              2               96  2.083333  
23              2               96  2.083333  
24              1               96  1.041667  
25              1               96  1.041667  
26              4               96  4.166667  
27              1               96  1.041667  
28              1               96  1.041667  
29              1               96  1.041667  
30              1               96  1.041667  
31              1               96  1.041667  
32              1               96  1.041667  
33              2               96  2.083333  
34              2               96  2.083333  
35              2               96  2.083333  
36              2               96  2.083333  
37              2               96  2.083333  
38              2               96  2.083333  
39              2               96  2.083333  
In [ ]:
 

END OF CODE

In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: